有没有办法将键击发送到当前未在C ++中选择的窗口?例如,如果我将记事本窗口最小化并希望在其中键入一些文本而不将窗口置于前面。
我正在使用Windows 7 64位。
答案 0 :(得分:6)
完全一般地说,伪造输入很难实现,而不使用SendInput()
。
是的,您可以尝试PostMessage()
,但是当它谈到SendMessage
时,eznme的回答充其量是误导性的。就像我和其他人一样,这里似乎每天说很多次,输入被发布到消息队列而不是发送到窗口句柄。
所有这一切,如果你不想给记事本窗口输入焦点,那么通过伪造很难得到文本。这个非常简单的替代方案效果更好,更易于使用,就是找到记事本EDIT
窗口的窗口句柄,并使用WM_GETTEXT
和WM_SETTEXT
来直接修改其内容
事实上,只要你有这个窗口处理你就可以有一个enormous multitude of functionality available!
答案 1 :(得分: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