如何在另一个应用程序中模拟CTRL + A和CTRL + C - C#

时间:2018-06-03 22:30:27

标签: c# events keyboard-events

就像我在标题中说的那样,我需要帮助模拟C#中的那些击键,而我在SO上看到的答案到目前为止还没有起作用。

我已经尝试过使用SendInput,SendMessage,SendKeys和keybd_event。所有这些都有效,但仅用于发送简单的按键,如A,B,C等。

对于发送修改过的按键,如CTRL + A,CTRL + C等,它们都没有在外部应用程序中工作,只在我正在处理的应用程序中。

我正在做的是我正在使用全局钩子来获取用户定义的热键,当他按下热键时,我的应用程序会复制用户正在编辑的任何文本,无论他正在使用什么应用程序。

现在,我正在使用下面的代码用于CTRL + A,但它不起作用,正如我所说,只有简单的击键才会被发送到外部应用程序,而不是我需要的。

private void SendSelectAll(){
   keybd_event(0x11, 0, 0x0001, 0);
   keybd_event(0x41, 0, 0x0001, 0);
   keybd_event(0x41, 0, 0x0002, 0);
   keybd_event(0x11, 0, 0x0002, 0);
}

0 个答案:

没有答案