题
我知道如何模拟鼠标和键盘事件,但它们就像用户那样做了,因此它们会影响活动的窗口。我需要的是模拟其中一个输入,但在一个不活动的窗口中。
我并不是说它被最小化了,想象一下,例如,你有msPaint和记事本。记事本在油漆面前。并且您希望在绘画窗口的某些坐标中模拟鼠标点击,但不将其设置为活动状态,从而使用户可以继续使用油漆边缘的记事本。
这有可能吗? 谢谢!
解决方案
您可以执行以下操作:
1)获取要在其中模拟事件的窗口的 HWND
。为了做到这一点,你可以使用 FindWindow
函数,该函数有两个参数,一个是窗口的类名(你可以使用 NULL
),另一个是窗口(有关详细信息,请参阅MSDN文档);
2)使用 SendMessage
功能向所需窗口发送消息。参数是:先前获得的窗口句柄( HWND
),消息(可以是例如 WM_KEYDOWN
,或 WM_MOUSEMOVE
, WM_LBUTTONDOWN
等),消息的 WPARAM
(在 WM_KEYDOWN
的情况下是密钥的虚拟密钥代码),最后是 LPARAM消息的
(在 WM_KEYDOWN
的情况下非常复杂,您应该检查MSDN以获取详细信息。)
在我看来,这足以满足您的目的。
其他提示
不隶属于 StackOverflow