4

我正在使用在CodeProject.com 上找到的代码作为低级键盘挂钩。唯一的问题是它使用了在单声道中不起作用的外部 DLL 调用。我想知道是否有人知道一种方法可以完成与该代码相同的事情,但可以在使用 .net 的 Windows 和使用 mono 的 Linux 中运行?

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

4

2 回答 2

4

在不知道您要捕捉什么的情况下,很难确定什么对您有用。您可能想看看使用 Application.AddMessageFilter。

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

于 2008-09-26T14:32:59.290 回答
3

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

于 2008-09-26T18:41:31.157 回答