有没有办法将击键发送到当前未在 C++ 中选择的窗口?例如,如果我有一个最小化的记事本窗口,并希望在其中键入一些文本而不将窗口置于前面。
我正在使用 Windows 7 64 位。
有没有办法将击键发送到当前未在 C++ 中选择的窗口?例如,如果我有一个最小化的记事本窗口,并希望在其中键入一些文本而不将窗口置于前面。
我正在使用 Windows 7 64 位。
一般来说,如果不使用SendInput()
.
是的,你可以试试PostMessage()
,但是eznme的回答充其量是误导性的。SendMessage
. 正如我和其他人每天在这里多次所说的那样,输入被发布到消息队列而不是发送到窗口句柄。
综上所述,如果您不想让记事本窗口输入焦点,那么很难通过伪造来获取文本。效果更好且更易于使用的非常简单的替代方法是找到记事本EDIT
窗口的窗口句柄并使用WM_GETTEXT
和WM_SETTEXT
,例如直接修改其内容。
事实上,一旦您拥有了这个窗口把手,就有大量的功能可供使用!
绝对:查看 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