【发布时间】:2010-11-09 22:07:28
【问题描述】:
我正在寻找一种方法来发送和接收键盘信息,而不管哪个应用程序具有焦点。我记得在大学时看到一个关于旧的 Windows API 的演示文稿,它可以让您更改光标位置并发送右键单击等。
除了 User32.dll 之外,还有没有办法用 .net 框架做到这一点?
【问题讨论】:
标签: c# api events keyboard mouse
我正在寻找一种方法来发送和接收键盘信息,而不管哪个应用程序具有焦点。我记得在大学时看到一个关于旧的 Windows API 的演示文稿,它可以让您更改光标位置并发送右键单击等。
除了 User32.dll 之外,还有没有办法用 .net 框架做到这一点?
【问题讨论】:
标签: c# api events keyboard mouse
AFAIK,无法捕获 GLOBAL 键盘和鼠标事件。但是有几篇关于 CodeProject 的文章演示了如何创建 .NET 类包装器。
您可以在这里查看它们:
1) Processing Global Mouse and Keyboard Hooks in C#
2)Global Mouse and Keyboard Library
编辑:顺便说一句,我使用第一个库在 C# 中创建了一个 SMALL 键盘记录器 :)
【讨论】:
几个月前,我使用 C# 创建了一个应用程序,它可以读取 wii 双节棍并移动鼠标。我的第一个选择是使用光标类像这样移动鼠标
Cursor.Position = new Point(Cursor.Position.X + 10, Cursor.Position.Y + 10);
一切都很好,但在玩游戏时不起作用,因为它们以不同的方式管理鼠标,所以最后我使用了 Kirtan 在这里提到的 Global Hooks (+1)。根据我的经验,我建议您使用 Global Hooks。
【讨论】: