我正尝试在Mono和X11中实现全局热键。不幸的是,应用程序使用System.Windows.Forms
,所以我不能使用this question中提出的GDK#事件过滤器。Mono中的全局热键
使用XGrabKey
的作品,但我遇到了事件循环的问题。关闭应用程序时,处理X11事件循环的线程仍挂在XNextEvent
中。有没有办法解决这个问题?我宁愿不诉诸XPending
投票。我可以以某种方式取消XNextEvent
或发送虚拟事件吗?
我在根窗口打电话给XGrabKey
,所以很遗憾我没有得到像DestroyNotify
或UnmapNotify
这样的事件。
为什么你的程序没有平台特定部分?那么你可以使用GDK/GTK。 Anyhoo .. – IanNorton
嗯,这是平台特定部分的一部分,因为显然使用'XGrabKey'在Windows上不起作用。但是从SWF迁移到Gtk#不是一种选择,为此只需引入整个Gtk#似乎是过度杀伤性的。 – bseibold
我知道这是非常旧的帖子,但我处于相同的情况,似乎你设法让它工作,你有任何地方这个代码可用?或者可以将它作为解决方案发布? – Gusman