【发布时间】:2014-08-27 07:49:19
【问题描述】:
我正在尝试使用 C# 在任何窗口中粘贴当前时间。所以我在 C# 中定义了一个全局热键,当我在任何窗口中按下热键时,当前时间就会粘贴在那里。
问题是它与记事本完美配合,但在记事本++中它只粘贴一次当前时间,然后粘贴一些奇怪的字符,在记事本++中由SYN显示。我添加了一个 thread.sleep(500);在粘贴命令之前,它适用于每个窗口。
所以问题是为什么它可以在记事本中工作而不是在记事本++中?以及如何摆脱睡眠延迟以使其在每个窗口中都能正常工作?
提前致谢。
这是我的代码:
public static void PasteDT()
{
ClipPut(DateTime.Now.ToString("HHmmss"));
//Thread.Sleep(500); //<< without this line it works just once in Notepad++
SendKeys.SendWait("^v");
}
public static void ClipPut(string ClipboardText)
{
Thread clipboardThread = new Thread(() => Clipboard.SetText(ClipboardText));
clipboardThread.SetApartmentState(ApartmentState.STA);
clipboardThread.IsBackground = false;
clipboardThread.Start();
clipboardThread.Join();
}
【问题讨论】: