如何在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.FormsSystem.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中工作:

  1. 解决scheme资源pipe理器中展开您的控制台项
  2. 用鼠标右键单击引用 ,然后单击添加引用…
  3. 在“ Assemblies”组中的“ Framework”下,select“ System.Windows.Forms
  4. 点击OK

然后,将下面的using语句与代码顶部的其他语句一起添加:

 using System.Windows.Forms; 

然后,添加以下任一ClipboardSetText语句添加到您的代码中:

 Clipboard.SetText("hello"); // OR Clipboard.SetText(helloString); 

最后,将STAThreadAttribute添加到您的Main方法中,以避免System.Threading.ThreadStateException

 [STAThreadAttribute] static void Main(string[] args) { // ... }