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

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

有帮助吗?

解决方案

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

其他提示

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top