从剪贴板内容 C# 设置字符串值
本文关键字:设置 字符串 剪贴板 | 更新日期: 2023-09-27 18:33:03
我正在编写一个小应用程序,它应该显示剪贴板中当前字符串中的字符数。例如,有人突出显示一行文本并点击副本,然后运行我的应用程序。我希望它显示字符串中的字符数。应该很简单,但我不断返回零。有相关的线程,但没有一个回答我的问题。这是我到目前为止所拥有的(顺便说一句,它是一个控制台应用程序(:
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace BuildandRun
{
class Program
{
static void Main(string[] args)
{
string data = Clipboard.GetText();
Console.WriteLine(data);
int dataLength = data.Length;
Console.WriteLine(dataLength + " Characters.");
Console.ReadLine();
}
}
}
来自 MSDN:
剪贴板类只能在设置为单个线程的线程中使用 公寓(STA(模式。若要使用此类,请确保 Main 方法 用 STAThreadAttribute 属性进行标记。
只需将您的代码更改为:
[STAThreadAttribute]
static void Main( string[] args )
该Clipboard
仅适用于单线程单元线程。
因此,答案是将以下内容添加到 Main((:
[STAThread]
static void Main(string[] args)
{
...
或者像这样的解决方法:
public string GetClipboardText()
{
string result = "";
Thread thread = new Thread(() => result = Clipboard.GetText());
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
thread.Join();
return result;
}