如何以编程方式将图像干净地添加到剪贴板并粘贴它们?

时间:2013-05-11 15:09:53

标签: c# image bitmap clipboard registerhotkey

我有一个全局注册热键,工作正常,在这个热键内是以下代码:

        {
            Clipboard.SetDataObject(Properties.Resources.cookie);
            SendKeys.SendWait("^v");
        }

它将cookie图像添加到我的剪贴板并将其粘贴到已激活窗口的窗口中。但是它只能在第一次正常工作并粘贴图像。

我第二次得到: 类型为System.Runtime.InteropServices.COMException'的第一次机会异常。发生在System.Windows.Forms.dll

然后弹出:

enter image description here

然而,如果程序有此选项,则只会弹出,否则不会发生任何事情(但我仍然会收到异常错误)。

但如果我手动按ctrl + V ...它每次都有效:S

1 个答案:

答案 0 :(得分:0)

Clipboard类有一种不同的方法,可能对你更有效:

Clipboard.SetImage(...);

仅设置DataObject时,您还可以指定对象的类型。这也是一个可行的选择,它可能以同样的方式工作,但使用适当的方法似乎......更合适。

另一个重要的注意事项:

Clipboard方法仅适用于“单一公寓”线程,因此如果您没有在UI线程上执行操作,则应确保将线程的状态设置为STA