我在我的一个程序 (C#) 中使用 SendKeys,当用户在键盘上按 F8 时,它会复制选定的文本。
它在 Windows 7 上运行良好,但在 Windows XP 上它有以下问题。
假设在记事本上,下面的句子写着“这是测试”
如果用户选择“is”并按 F8,则不会复制文本。
之后,如果用户选择“This”,则复制的文本为“is”
之后,如果用户选择“test”,则复制的文本为“This”
如您所见,按 F8 会复制先前选择的文本,而不是当前文本。它只发生在 Windows XP 上。
这是代码
System.IntPtr test = GetForegroundWindow();
System.Windows.Forms.SendKeys.Send("^(c)");
string copiedText = Clipboard.GetText();
由于我使用 F8 的全局键绑定,因此第一行代码告诉我当前活动的窗口。之后发送 Ctrl+C,然后从剪贴板复制文本。