从剪贴板中取出字符串?没有装配参考?

时间:2013-09-07 19:11:06

标签: c# console-application

如果剪贴板中的当前(最新)项是一个字符串,我想从剪贴板中取出字符串,并将每个单词放在一个数组中(只是一个简单的循环,它消除了空格和换行符,只取字从字符串)。然后我只想打印数组中的每个项目(让我们说每个项目用换行符号进行测试)。

这非常容易,简单等等。我的麻烦是我似乎无法找到/使​​用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很长一段时间了,但它运行正常)。

6 个答案:

答案 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();