我正在使用我在CodeProject.com for a low-level keyboard hook上找到的代码。唯一的问题是它使用不能用单声道工作的外部DLL调用。我想知道是否有人知道一种方式来完成代码的相同的事情,但会运行在Windows使用.net和Linux使用单声道?我正在制作一个Dashboard like application。该程序位于系统托盘中,当用户按下热键时,它将弹出所有的小工具。所以程序没有焦点,所以通常它不会捕获任何按键,所以我使用低级键盘钩子,并且钩住了用户定义为热键的两个键。但是我正在使用Windows DLL调用,这在使用mono的Linux中不起作用。所以我想知道是否有办法做同样的事情,但会运行在Linux使用单声道?C#单声道 - 低级别键盘挂钩
4
A
回答
3
这是不可能只使用.NET来实现这个行为。您必须为运行的每个平台(Windows,Linux,Mac OS)使用二进制驱动程序。也许可以只使用P/Invoke(检测你正在运行的操作系统,调用适当的系统库),这样你就不必分发任何“额外的”dll/so/dylib。
4
不知道你想要捕捉什么,很难确定什么会适合你。你可能想看看使用Application.AddMessageFilter。
一个例子是在这里:http://dn.codegear.com/article/30129
相关问题
- 1. 低级键盘挂钩
- 2. C#低级键盘挂钩不工作
- 3. 使用低级别键盘挂钩更改键盘字符
- 4. 多个键盘和低级挂钩
- 5. 检测低级别键盘挂钩中的特定键
- 6. 什么会导致Windows取消挂钩低级(全局)键盘挂钩?
- 7. 在c#.net 3.5中冻结全局低级别键盘钩
- 8. 如何使用低级别的键盘钩子在C#
- 9. 低级键盘挂钩检查源设备ID
- 10. C#低级别键盘设备
- 11. Java键盘挂钩
- 12. 全局低级别键盘钩子 - 竞争条件
- 13. 针对Mac的挂钩,特别是键盘挂钩
- 14. 键盘挂钩存储键
- 15. 低级别的键盘钩子不是UI线程
- 16. C#低级别鼠标挂钩和窗体事件处理
- 17. Windows 8中的某些窗口阻止我的低级键盘挂钩工作
- 18. 键盘挂钩问题
- 19. 检测键盘挂钩
- 20. Windows键盘挂钩挂起调试器
- 21. 键盘挂钩改变键的行为
- 22. Windows上的低级别键盘输入
- 23. C# - 低级别键钩和处理事件
- 24. 创建SendInput时会调用全局低级别键盘挂钩。如何预防它?
- 25. 按了什么键?键盘挂钩
- 26. 低级别鼠标和键盘钩子回调在哪个线程中运行?
- 27. 低级键盘挂钩问题:应用程序不集中时键盘状态丢失(德尔福)
- 28. .NET应用程序中没有调用低级别键盘钩子
- 29. C++/Java - 键盘钩
- 30. 全局键盘挂钩不工作
你为什么要用这个? – Bernard 2008-09-26 06:32:32
我删除了我的答案,因为它没有真正回答如何在Linux上添加低级别键盘挂钩。 – 2008-09-26 14:20:32