或者澄清这个问题,我怎么能让Windows认为我碰到了一把钥匙,当我真的没有?我知道我可以使用SendMessage并在那里指定输入,但是不仅我的应用程序会收到它吗?我希望控制所有接收“假”输入的应用程序。有什么建议吗?
答案 0 :(得分:5)
您所描述的伪造输入是由SendInput功能实现的。输入转到具有输入焦点的线程。
答案 1 :(得分:1)
即使在其他进程中,您也可以SendMessage
到任何您想要的窗口。您甚至可以使用HWND_BROADCAST
将其发送到系统上的每个级别窗口。但那是你真正想要的吗?如果您只对特定程序感兴趣,可以使用FindWindow获取其窗口句柄,然后仅将消息发送到该窗口。
请注意,如果您想要做的只是将一个简单的击键注入另一个进程,那么SendInput
确实是可行的方法。如果您想发送一些全局键盘快捷键,那么谁拥有焦点并不重要。如果您想使用SendInput
将相同的输入发送到多个窗口,则必须遍历窗口列表,并且对于每个窗口,首先设置焦点然后发送输入。