我有一个应用程序,我使用剪贴板进行复制和粘贴操作。复制我使用过这段代码:
Clipboard.Clear();
const byte VK_CONTROL = 0x11;
keybd_event(VK_CONTROL, 0, 0, 0);
keybd_event(0x43, 0, 0, 0); // Send the C key (43 is "C")
keybd_event(0x43, 0, CONST_KEYEVENTF_KEYUP, 0);
keybd_event(VK_CONTROL, 0, CONST_KEYEVENTF_KEYUP, 0);
但它给出了一个错误,说无法执行剪贴板操作,我无法粘贴它。这是一个例外。
如何解决此问题,还是有其他方法可以在复制之前清除剪贴板内容?
使用:
Clipboard.SetText("some string");
Clipboard.GetText();
请参阅MSDN文章Clipboard Class (System.Windows.Forms)。
我使用Win32 API调用(EmptyClipboard function)完成了它。
Clipboard.Clear()
清除内容的简单方法是用空格字符替换它:
public static void Clear()
{
Thread STAThread = new Thread(
delegate ()
{
System.Windows.Forms.Clipboard.SetText(" ");
});
STAThread.SetApartmentState(ApartmentState.STA);
STAThread.Start();
STAThread.Join();
}