我正在尝试执行的程序是使用带有 Windows 窗体的键盘来模拟操作系统的鼠标事件。现在,我可以更改光标并执行不同的操作,例如在表单内单击鼠标(当表单位于顶部时)。
问题是我想将它扩展到整个操作系统,这意味着即使我的 Windows 窗体不在顶部,我仍然能够控制我的光标并在窗体位于时在其他应用程序上执行各种鼠标事件跑步。我该怎么做才能实现这一点?
我正在尝试执行的程序是使用带有 Windows 窗体的键盘来模拟操作系统的鼠标事件。现在,我可以更改光标并执行不同的操作,例如在表单内单击鼠标(当表单位于顶部时)。
问题是我想将它扩展到整个操作系统,这意味着即使我的 Windows 窗体不在顶部,我仍然能够控制我的光标并在窗体位于时在其他应用程序上执行各种鼠标事件跑步。我该怎么做才能实现这一点?
您可能想查看.NET 中的这个库 Global System Hooks,它使用全局系统挂钩来检测所有鼠标和键盘事件,包括应用程序之外的事件。
SendInput()
您可以使用 Win32 API合成操作系统范围内的击键、鼠标移动和按钮单击。您可以使用P/Invoke从 C# 调用它。示例代码可在此处找到:PInvoke.net 上的 SendInput。
我记得那天我使用 SendInput(和一个屏幕截图 API)在 C#(我认为是 2.0)中创建了一个扫雷机器人。它可以在大约一秒钟内解决专家难题。我希望我还有源代码可以在这里取样,但我没有。
编辑:似乎有人已经为 CodePlex 上的 Windows Input Simulator 创建了一个不错的SendInput()
.NET warpper。