如何在C#中将数据复制到剪贴板
我怎么能复制一个string(例如“你好”)在C#中的系统剪贴板,所以下一次我按CTRL + V我会得到“你好”?
你需要一个命名空间声明:
using System.Windows.Forms;
或WPF:
using System.Windows;
要复制一个确切的string(在这种情况下是文字):
Clipboard.SetText("Hello, clipboard");
要复制文本框的内容:
Clipboard.SetText(txtClipboard.Text);
看这里的例子 。 或者… 官方MSDN文档或在这里为WPF 。
Clipboard.SetText("hello");
你需要使用System.Windows.Forms
或System.Windows
命名空间。
我对这个问题的经验,使用WPF C#应对剪贴板和System.Threading.ThreadStateException,我的代码与所有浏览器正常工作
Thread thread = new Thread(() => Clipboard.SetText("String to be copied to clipboard")); thread.SetApartmentState(ApartmentState.STA); //Set the thread to STA thread.Start(); thread.Join();
在这里信贷到这个职位
但这只适用于本地主机,不要试试这个服务器,导致它不会工作。 在服务器上,我通过使用zeroclipboard。 唯一的办法,经过大量的研究。
对于控制台项目一步一步的方式,你必须先添加System.Windows.Forms
引用。 以下步骤在Visual Studio社区2013与.NET 4.5中工作:
- 在解决scheme资源pipe理器中展开您的控制台项
- 用鼠标右键单击引用 ,然后单击添加引用…
- 在“ Assemblies”组中的“ Framework”下,select“
System.Windows.Forms
。 - 点击OK 。
然后,将下面的using
语句与代码顶部的其他语句一起添加:
using System.Windows.Forms;
然后,添加以下任一Clipboard
。 SetText
语句添加到您的代码中:
Clipboard.SetText("hello"); // OR Clipboard.SetText(helloString);
最后,将STAThreadAttribute
添加到您的Main
方法中,以避免System.Threading.ThreadStateException
:
[STAThreadAttribute] static void Main(string[] args) { // ... }