模拟鼠标移动/单击/按下非活动应用程序中的按钮

时间:2009-04-30 10:55:41

标签: keypress simulate

我知道如何模拟鼠标和键盘事件,但它们就像用户那样做了,因此它们会影响活动的窗口。我需要的是模拟其中一个输入,但在一个不活动的窗口中。

我并不是说它被最小化了,想象一下,例如,你有msPaint和记事本。记事本在油漆面前。并且您希望在绘画窗口的某些坐标中模拟鼠标点击,但不将其设置为活动状态,这样用户就可以继续使用油漆边缘的记事本。

这有可能吗? 谢谢!

2 个答案:

答案 0 :(得分:3)

您可以执行以下操作:

1)获取要在其中模拟事件的窗口的HWND。为了做到这一点,您可以使用FindWindow函数,该函数有两个参数,一个是窗口的类名(可以使用NULL),另一个是窗口的名称(参见MSDN文档细节);

2)使用SendMessage功能向所需窗口发送消息。参数是:先前获得的窗口句柄(HWND),消息(可以是WM_KEYDOWN,或WM_MOUSEMOVEWM_LBUTTONDOWN等),{{消息的1}}(在WPARAM的情况下是密钥的虚拟密钥代码),最后消息的WM_KEYDOWN(在LPARAM的情况下非常复杂,并且你应该查看MSDN的详细信息。)

在我看来,这足以满足您的目的。

答案 1 :(得分:0)

如果你认识JAVA,你可以使用机器人课程。

  

此类用于生成本机系统输入事件,用于测试自动化,自运行演示以及需要控制鼠标和键盘的其他应用程序

Java robots class

也许在.net中有类似的东西?