C#单声道-低电平键盘挂钩

C#单声道-低电平键盘挂钩,c#,mono,keyboard-hook,C#,Mono,Keyboard Hook,我正在使用我在上找到的代码。唯一的问题是它使用的外部DLL调用在mono中不起作用。我想知道是否有人知道一种方法可以实现与该代码相同的功能,但会同时在使用.net的Windows和使用mono的Linux中运行 编辑:澄清我想做什么: 我正在做一个决定。该程序位于系统托盘中,当用户按下热键时,它将弹出所有小工具。所以程序没有焦点,所以通常不会捕捉任何击键,所以我使用低级键盘钩子,钩子用户定义为热键的两个键。但我使用的是Windows DLL调用,在使用mono的Linux中不起作用。所以我想知道

我正在使用我在上找到的代码。唯一的问题是它使用的外部DLL调用在mono中不起作用。我想知道是否有人知道一种方法可以实现与该代码相同的功能,但会同时在使用.net的Windows和使用mono的Linux中运行

编辑:澄清我想做什么:
我正在做一个决定。该程序位于系统托盘中,当用户按下热键时,它将弹出所有小工具。所以程序没有焦点,所以通常不会捕捉任何击键,所以我使用低级键盘钩子,钩子用户定义为热键的两个键。但我使用的是Windows DLL调用,在使用mono的Linux中不起作用。所以我想知道是否有一种方法可以做同样的事情,但是可以在Linux中使用mono运行?

如果不知道要捕获什么,很难确定什么对你有用。您可能希望了解如何使用Application.AddMessageFilter


这里有一个例子:

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

我删除了我的答案,因为它没有真正回答如何在Linux上添加低级键盘挂钩。我编辑并添加了一些说明。所以我必须在windows上做一件事,在Linux上做另一件事?好吧,我想我可能不得不这么做。那么,在linux中我该怎么做呢?