c# - 如何保存剪贴板的副本然后恢复到它?

标签 c# clipboard

我正在通过模拟突出显示和复制文本所需的按键来阅读文本框中的单词。完成后,我希望剪贴板与我找到的完全一样。

我希望我能够做这样的事情:

IDataObject clipboardBackup = Clipboard.GetDataObject();
Clipboard.Clear();
//Save other things into the clipboard here, etc//
Clipboard.SetDataObject(clipboardBackup);

但这似乎行不通。看起来你可以走专门尝试文本、音频、图片等的路线,然后相应地保存它们。 (我想“数据对象”在我的例子中也是专门的,我希望它是通用的。)

我不希望对每种可能的剪贴板数据类型都使用 case,既是为了更简洁,也是为了确保无论格式如何我都不会丢失数据。

对于抓取任何和所有剪贴板然后恢复它有什么技巧吗?

最佳答案

除非登录用户直接指示,否则不要使用剪贴板。它不用于一般应用程序存储 - 它供用户用于他们想要剪辑的内容。

如果您想从任意文本框中获取文本,请找到窗口(在 Win32 中)并发送 EM_GETTEXT Win32 消息。

关于c# - 如何保存剪贴板的副本然后恢复到它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2243241/

相关文章:

c# - 如何从 Application Directory 文本文件中读取文本文件

javascript - navigator.clipboard.write : 'Clipboard' : Iterator getter is not callable

c# - 找不到 sn.exe 来签署程序集

c# - 将 XBox 360 Kinect 与 Kinect for Windows SDK 一起使用

c# - 使用自动映射器时无法从 'System.Collections.Generic.IEnumerable<x>' 转换为 'x'

javascript - Chrome 扩展程序粘贴到输入元素中

javascript - 如何在 MobileSafari 中接收复制的图像?

javascript - TinyMCE 右键单击​​粘贴解决方法/破解?

c# - 剪贴板 + PresentationFramework = OutOfMemoryException?

c# - 仅使用 VSTA 在 Corel Draw X6 中创建自定义控件