如何使用C#清除剪贴板内容

问题描述 投票:0回答:4

我有一个应用程序,我使用剪贴板进行复制和粘贴操作。复制我使用过这段代码:

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);

但它给出了一个错误,说无法执行剪贴板操作,我无法粘贴它。这是一个例外。

如何解决此问题,还是有其他方法可以在复制之前清除剪贴板内容?

c# winforms .net-2.0 clipboard
4个回答
2
投票

使用:

Clipboard.SetText("some string");
Clipboard.GetText();

请参阅MSDN文章Clipboard Class (System.Windows.Forms)


1
投票

我使用Win32 API调用(EmptyClipboard function)完成了它。


0
投票
Clipboard.Clear()

MSDN


0
投票

清除内容的简单方法是用空格字符替换它:

public static void Clear()
{
    Thread STAThread = new Thread(
                             delegate ()
                             {
                                 System.Windows.Forms.Clipboard.SetText(" ");
                             });

    STAThread.SetApartmentState(ApartmentState.STA);
    STAThread.Start();
    STAThread.Join();

}
© www.soinside.com 2019 - 2024. All rights reserved.