如果剪贴板中的当前(最新)项是一个字符串,我想从剪贴板中取出字符串,并将每个单词放在一个数组中(只是一个简单的循环,它消除了空格和换行符,只取字从字符串)。然后我只想打印数组中的每个项目(让我们说每个项目用换行符号进行测试)。
这非常容易,简单等等。我的麻烦是我似乎无法找到/使用C#内置的Clipboard类!这是我用作汇编参考的内容:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Object;
using System.Windows.Clipboard;
注意System.Windows.Clipboard;得到一个红色下划线,因为它没有排队。为什么会这样? http://msdn.microsoft.com/en-us/library/system.windows.clipboard.aspx显示剪贴板类信息。
这可能是我的错误,但是否则我可能没有正确设置路径或其他什么?我只是安装了Visual Studio 2012 For Desktop SP3(虽然我已经使用VS2012 for Web很长一段时间了,但它运行正常)。
答案 0 :(得分:2)
System.Windows.Clipboard
是一个类而不是命名空间,没有必要将一个类放入using指令。
编译器错误消息应该告诉您相同的内容。
答案 1 :(得分:2)
首先,您必须在应用程序中添加对System.Windows.Forms的引用。转到项目 - >添加引用,从刚打开的窗口中的.NET选项卡中选择System.Windows.Forms。您必须通过将STAThread属性应用于Main()函数来避免ThreadStateException。然后您可以毫无问题地使用剪贴板功能。
using System;
使用System.Windows.Forms;
课程计划{
[STAThread]
static void Main(string[] args) {
Clipboard.SetText("this is in clipboard now");
}
}
答案 2 :(得分:1)
我希望这会对你有所帮助
http://blog.another-d-mention.ro/programming/c/use-clipboard-copypaste-in-c-console-application/
它显示了如何在C#控制台应用程序中使用剪贴板功能
答案 3 :(得分:0)
您不需要这一行:using System.Windows.Clipboard;
using语句用于命名空间,而Clipboard是一个类。该类是由程序集PresentationCore.dll提供的,并且由于您有WPF项目,因此您的项目已经有了对它的引用。
答案 4 :(得分:0)
您应该引用System.Windows
命名空间,只有它包含类Clipboard
。
您可以从那里设置和获取数据
System.Windows.Clipboard.SetData();
答案 5 :(得分:0)
您需要一个命名空间声明:
using System.Windows.Forms;
对于WPF:
using System.Windows;
复制完整的字符串
var dataObject = System.Windows.Clipboard.GetDataObject();
string text= dataObject.GetData("UnicodeText", true).ToString();