How to copy data to clipboard in C#
如何将字符串(例如"hello")复制到C中的系统剪贴板,因此下次按CTRL+V时,我将得到"hello"?
- 如何将字符串的内容复制到C_中的剪贴板的可能副本?
您需要一个命名空间声明:
1
| using System.Windows.Forms; |
或为WPF:
要复制一个精确的字符串(在本例中为文字):
1
| Clipboard.SetText("Hello, clipboard"); |
要复制文本框的内容:
1
| Clipboard.SetText(txtClipboard.Text); |
请参阅此处以获取示例。或者…官方的msdn文件或WPF文件。
- 是的,Winforms和WPF…是否有机会在控制台应用程序中执行此操作?
- @Kierenjohnstone是否可以使用键值对访问剪贴板内容?
- @阿卜杜勒-我不知道你的意思。剪贴板内容可以是文本、文件、图像和任何类型的自定义数据。千伏对的概念似乎与剪贴板的想法没有任何关系?
- @Kierenjohnstone我想做的是用户可以在剪贴板中存储多个东西。这些东西可以通过钥匙来访问。它类似于HTML5本地存储。或者,由于剪贴板的性质,这样的事情是不可能的吗?
- 如果ASP.NET出现错误,请尝试在新线程中使用:var thread=new thread(param=>clipboard.settext(txtname.text););thread.setapartmentstate(apartmentstate.sta);thread.start();
- 不要在ASP.NET中执行此操作。这是一种服务器端技术,意味着您将复制到服务器上的剪贴板。有史以来最糟糕的想法。
- heliou的回答帮助我:在添加了属性[stathreadAttribute]之后,我的clipboard.settext方法开始工作
1
| Clipboard.SetText("hello"); |
您需要使用System.Windows.Forms或System.Windows名称空间。
- 同样的答案,比如stackoverflow.com/a/3546026/206730-也许最好删除它,我不知道为什么是新手
对于逐步进行的控制台项目,必须首先添加System.Windows.Forms引用。以下步骤适用于Visual Studio Community 2013和.NET 4.5:
在解决方案资源管理器中,展开控制台项目。
右键单击引用,然后单击添加引用…
在"装配"组的"框架"下,选择"EDOCX1"〔0〕。
单击确定。
然后,在代码顶部添加以下using语句和其他语句:
1
| using System.Windows.Forms; |
然后,在代码中添加以下Clipboard.SetText语句之一:
1 2 3
| Clipboard.SetText("hello");
// OR
Clipboard.SetText(helloString); |
最后,在您的Main方法中添加STAThreadAttribute以避免System.Threading.ThreadStateException的出现:
1 2 3 4 5
| [STAThreadAttribute]
static void Main(string[] args)
{
// ...
} |
- 类StackOverflowException紧跟在.NET框架系统类库中的STAThreadAttribute之前
- 您可以将[StathreadAttribute]缩短为[Stathread]Fyi
我在使用wpf c处理剪贴板和System.Threading.ThreadStateException这一问题上的经验是,我的代码在所有浏览器中都能正常工作:
1 2 3 4
| 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完成的。唯一的办法,经过大量的研究。
- 我在自动硒测试(webdriver)中使用它,它工作得很好!
- @安德鲁.福克斯,你在你的服务器-客户机模型上试过吗?因为如果是两台独立的机器,我想它不应该工作。
- lol no,selenium打开代理机器上的浏览器窗口。