将文本/击键发送到未选择的窗口?

Tim*_*Tim 5 c++ winapi text sendkeys keystrokes

有没有办法将键击发送到当前未在C++中选择的窗口?例如,如果我将记事本窗口最小化并希望在其中键入一些文本而不将窗口置于前面.

我正在使用Windows 7 64位.

Dav*_*nan 6

伪装输入很难实现,完全通用,不使用SendInput().

是的,你可以尝试PostMessage(),但eznme的答案充其量是误导性的SendMessage.就像我和其他人一样,这里似乎每天说很多次,输入被发布到消息队列而不是发送到窗口句柄.

所有这一切,如果你不想给记事本窗口输入焦点,那么通过伪造很难得到文本.这工作得更好和更容易使用,非常简单的替代方法,就是找到记事本的窗口句柄EDIT窗口,使用WM_GETTEXTWM_SETTEXT,例如,直接修改其内容.

事实上,一旦你掌握了这个窗口就可以获得大量的功能!


Ber*_*ann 4

绝对可以:查看 PostMessage() 和 SendMessage(),它们是 Windows API 的一部分:

http://msdn.microsoft.com/en-us/library/ms644944%28VS.85%29.aspx

http://msdn.microsoft.com/en-us/library/ms644950%28VS.85%29.aspx

具体来说,您可能想发送WM_KEYUP

http://msdn.microsoft.com/en-us/library/ms646281%28VS.85%29.aspx