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

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

这有可能吗? 谢谢!

有帮助吗?

解决方案

您可以执行以下操作:

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

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

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

其他提示

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

  

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

Java机器人课程

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top