我如何只向一个程序发送击键?

时间:2010-02-23 02:29:12

标签: c++ winapi sendkeys

我一直很难找到任何有用的东西,但我发现有人问如何做到这一点,(How to send keystrokes to a window?

如果使用代码,我可以设置记事本的文本,但我想发送密钥,但设置文本,我 想要发送像我一直在使用它的keybd_event这样的密钥,但我想只发送给一个程序。

keybd_event('a', NULL, NULL, NULL);  
keybd_event('a', NULL, KEYEVENTF_KEYUP, NULL); 

我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

听起来你在发送密钥之前试图使窗口具有焦点。查看FindWindowSetForegroundWindow

这样的事情应该有效:

SetForegroundWindow(FindWindow(0,"Untitled - Notepad"));
keybd_event(....);

如果您正在谈论直接更改窗口的文本,请查看GetWindow以导航窗口树,并SendMessage使用WM_SETTEXT参数。