繁体   English   中英

使用Windows窗体控制OS鼠标事件 - C#

[英]Control OS Mouse Event using Windows Form - C#

我正在尝试的程序是使用带有Windows窗体的键盘模拟操作系统的鼠标事件。 现在我可以更改光标并执行不同的操作,例如鼠标在窗体内单击(当窗体位于顶部时)。

问题是我想将它扩展到整个操作系统,这意味着即使我的Windows窗体不在顶部,我仍然可以控制我的光标并在其他应用程序上执行各种鼠标事件,而Form是运行。 我该怎么做才能实现这个目标?

您可能希望查看.NET中的这个库Global System Hooks,它使用全局系统挂钩来检测所有鼠标和键盘事件,包括应用程序之外的事件。

您可以使用Win32 SendInput() API合成操作系统范围的击键,鼠标移动和按钮单击。 您可以使用P / Invoke从C#中调用它。 示例代码可以在这里找到: PInvoke.net上的SendInput

我记得当天我使用SendInput(和屏幕截图API)在C#中创建了一个Minesweeper机器人(我认为是2.0)。 它可以在大约一秒钟内解决一个专家拼图。 我希望我仍然有源代码在这里采样,但我没有。

编辑:似乎有人已经为SendInput()创建了一个很好的.NET warpper: CodePlex上的Windows输入模拟器

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM