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

发布于 2024-09-27 14:01:46 字数 419 浏览 6 评论 0原文

我有一个应用程序,我使用剪贴板进行复制和粘贴操作。对于复制,我使用了以下代码:

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

但它给出了一个错误,指出无法执行剪贴板操作,并且我无法粘贴它。它抛出异常。

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

I have an application where I am using the clipboard for copy and paste operations. For copying I have used this code:

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

But it's giving an error saying Unable to perform the clipboard action, and I am unable to paste it. It's throwing an exception.

How do I fix this issue or are there some other ways to clear the clipboard content before we copy?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

眉目亦如画i 2024-10-04 14:01:46

使用:

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

请参阅 MSDN 文章 剪贴板类 ( System.Windows.Forms)

Use:

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

See the MSDN article Clipboard Class (System.Windows.Forms).

裂开嘴轻声笑有多痛 2024-10-04 14:01:46

我已经使用 Win32 API 调用(清空剪贴板功能)。

I have done it using Win32 API calls (EmptyClipboard function).

肩上的翅膀 2024-10-04 14:01:46
Clipboard.Clear()

MSDN

Clipboard.Clear()

MSDN

莫相离 2024-10-04 14:01:46

我知道这是一个较旧的线程,但我遇到了这个问题,这非常令人恼火。能够使用这个解决。
在课堂上

[DllImport("user32.dll")]static extern IntPtr GetOpenClipboardWindow();

[DllImport("user32.dll")]private static extern bool OpenClipboard(IntPtr hWndNewOwner);

[DllImport("user32.dll")]static extern bool EmptyClipboard();

[DllImport("user32.dll", SetLastError=true)]static extern bool CloseClipboard();

我想清除剪贴板的地方

IntPtr handleWnd = GetOpenClipboardWindow();
OpenClipboard(handleWnd);
EmptyClipboard();
CloseClipboard();

I know this is an older thread but I came upon this problem and it was very irritating. Was able to resolve using this.
Inside of Class

[DllImport("user32.dll")]static extern IntPtr GetOpenClipboardWindow();

[DllImport("user32.dll")]private static extern bool OpenClipboard(IntPtr hWndNewOwner);

[DllImport("user32.dll")]static extern bool EmptyClipboard();

[DllImport("user32.dll", SetLastError=true)]static extern bool CloseClipboard();

Where I wanted to Clear the Clipboard

IntPtr handleWnd = GetOpenClipboardWindow();
OpenClipboard(handleWnd);
EmptyClipboard();
CloseClipboard();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文