我正在尝试使用Windows表单中的键盘模拟操作系统的鼠标事件。目前,我可以在窗体(Form)上执行不同的操作,如鼠标点击,并更改光标(当窗体位于顶部时)。但问题是,我想将其扩展到整个操作系统,这意味着即使我的Windows表单不在顶部,我仍然能够控制我的光标并在运行窗体时在其他应用程序上执行各种鼠标事件。我该如何实现这一点?
您可能想要查看这个库.NET中的全局系统钩子,它使用全局系统钩子来检测所有鼠标和键盘事件,包括应用程序外部的事件。
你可以使用Win32的SendInput()
API综合操作系统级别的按键、鼠标移动和按钮点击。你可以使用P/Invoke从C#中调用它。示例代码可以在PInvoke.net上找到:SendInput。
我还记得很久以前我曾经使用SendInput(和一个屏幕截图API)在C#中创建了一个扫雷机器人(我想是2.0版本)。它可以在约一秒钟内解决专家难度的谜题。但是,我希望我仍然能够找到源代码来供大家学习使用,但遗憾的是我没有了。
编辑:看起来已经有人为SendInput()
创建了很好的.NET包装器:CodePlex上的Windows Input Simulator。