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

时间:2012-10-09 10:01:49

标签: c# winforms keyboard mouseevent

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

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

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

编辑:有人已经为SendInput()创建了一个漂亮的.NET warpper:Windows Input Simulator on CodePlex