C#Mono - 低级键盘挂钩

时间:2008-09-26 05:20:25

标签: c# mono keyboard-hook

我正在使用CodeProject.com for a low-level keyboard hook上找到的代码。唯一的问题是它使用不能在单声道中工作的外部DLL调用。我想知道是否有人知道如何完成与该代码相同的操作,但是在Windows中使用.net运行,而Linux使用单声道运行吗?

编辑:澄清我正在尝试做的事情: 我正在制作Dashboard like application。该程序位于系统托盘中,当用户按下热键时,它将弹出所有小工具。因此程序没有焦点,所以通常它不会捕获任何击键,所以我使用低级键盘钩子并挂钩用户定义为热键的两个键。但我正在使用Windows DLL调用,这在使用mono的Linux中不起作用。所以我想知道是否有办法做同样的事情,但是会在Linux中使用mono运行吗?

2 个答案:

答案 0 :(得分:4)

如果不知道你想捕捉什么,很难确定什么对你有用。您可能希望查看使用Application.AddMessageFilter。

这里有一个例子:http://dn.codegear.com/article/30129

答案 1 :(得分:3)

仅使用.Net无法获得此行为。您必须为运行的每个平台(Windows,Linux,Mac OS)使用二进制驱动程序。可能只能使用P / Invoke(检测您正在运行的操作系统,调用适当的系统库),这样您就不必分发任何“额外”的dll / so / dylib。

相关问题