考虑这个小程序:
class Program
{
[STAThread]
static void Main(string[] args)
{
Console.WriteLine("Please copy something into the clipboard.");
WaitForClipboardChange();
Console.WriteLine("You copied " + Clipboard.GetText());
Console.ReadKey();
}
static void WaitForClipboardChange()
{
Clipboard.SetText("xxPlaceholderxx");
while (Clipboard.GetText() == "xxPlaceholderxx" &&
Clipboard.GetText().Trim() != "")
Thread.Sleep(90);
}
}
我运行了程序,并从记事本中复制了一个字符串。但是程序只从剪贴板获取了一个空字符串,并写入了“你复制了”。
问题出在哪里?有什么让控制台应用程序的剪贴板访问表现异常的因素吗?
我的系统是 Windows 7 SP1 x86,使用的 .NET 4 客户端框架。
!string.IsNullOrWhitespace(Clipboard.GetText())
。 - gunr2171Clipboard.GetText()
返回的内容。 - user645280Clipboard.GetText()
都返回空值,无论是否调用了.SetText()
。这种奇怪的情况可能是由于它实际上没有连接到剪贴板,因此永远不会返回任何内容。 - user645280.GetText()
不喜欢被快速连续地调用。 - user645280