我知道如何模拟鼠标和键盘事件,但它们就像用户那样做了,因此它们会影响活动的窗口。我需要的是模拟其中一个输入,但在一个不活动的窗口中。
我并不是说它被最小化了,想象一下,例如,你有msPaint和记事本。记事本在油漆面前。并且您希望在绘画窗口的某些坐标中模拟鼠标点击,但不将其设置为活动状态,这样用户就可以继续使用油漆边缘的记事本。
这有可能吗? 谢谢!
答案 0 :(得分:3)
您可以执行以下操作:
1)获取要在其中模拟事件的窗口的HWND
。为了做到这一点,您可以使用FindWindow
函数,该函数有两个参数,一个是窗口的类名(可以使用NULL
),另一个是窗口的名称(参见MSDN文档细节);
2)使用SendMessage
功能向所需窗口发送消息。参数是:先前获得的窗口句柄(HWND
),消息(可以是WM_KEYDOWN
,或WM_MOUSEMOVE
,WM_LBUTTONDOWN
等),{{消息的1}}(在WPARAM
的情况下是密钥的虚拟密钥代码),最后消息的WM_KEYDOWN
(在LPARAM
的情况下非常复杂,并且你应该查看MSDN的详细信息。)
在我看来,这足以满足您的目的。
答案 1 :(得分:0)
如果你认识JAVA,你可以使用机器人课程。
此类用于生成本机系统输入事件,用于测试自动化,自运行演示以及需要控制鼠标和键盘的其他应用程序
也许在.net中有类似的东西?