我知道如何模拟鼠标和键盘事件,但它们的行为就像用户做了它们一样,所以它们会影响活动的窗口。我需要的是模拟其中一个输入,但在一个不活动的窗口中。
我并不是说它被最小化了,例如,想象一下,你有 msPaint 和记事本。记事本在油漆前面。并且您想在绘图窗口的某些坐标中模拟鼠标单击,但不将其设置为活动状态,从而使用户可以继续使用位于绘图前的记事本。
这可能吗?谢谢!
您可以执行以下操作:
1)获取HWND
要在其中模拟事件的窗口。为此,您可以使用该FindWindow
函数,该函数接受两个参数,一个是窗口的类名(您可以使用NULL
),另一个是窗口的名称(有关详细信息,请参阅 MSDN 文档);
SendMessage
2) 使用函数向所需窗口发送消息。参数为:之前获取的窗口句柄HWND
(消息(在这种情况下非常复杂,您应该查看 MSDN 了解详细信息)。WM_KEYDOWN
WM_MOUSEMOVE
WM_LBUTTONDOWN
WPARAM
WM_KEYDOWN
LPARAM
WM_KEYDOWN
在我看来,这对于您打算做的事情已经足够了。
好吧,如果您了解 JAVA,您可以使用 robots 类。
此类用于生成本地系统输入事件,用于测试自动化、自运行演示和其他需要控制鼠标和键盘的应用程序
也许.net中有一些类似的东西?