Я пытаюсь реализовать глобальные горячие клавиши в Mono и X11. К сожалению, приложение использует System.Windows.Forms
, поэтому я не могу использовать фильтр событий GDK #, предложенный в this question.Глобальные горячие клавиши в Mono
Работает XGrabKey
, но у меня возникла проблема с циклом события. При закрытии приложения поток, обрабатывающий цикл событий X11, все еще зависает в XNextEvent
. Есть ли способ обойти это? Я бы предпочел не прибегать к опросу с XPending
. Могу ли я как-то отменить XNextEvent
или отправить фиктивное событие?
Я звоню XGrabKey
на корневое окно, поэтому, к сожалению, я не получаю никаких событий, таких как DestroyNotify
или UnmapNotify
.
Почему бы не иметь определенную платформу в вашей программе? то вы можете использовать GDK/GTK. Anyhoo .. – IanNorton
Ну, это часть определенной части платформы, поскольку, очевидно, использование 'XGrabKey' не будет работать в Windows. Но переход с SWF на Gtk # не является опцией, и вытягивание всего Gtk # просто для этого кажется излишним. – bseibold
Я знаю, что это очень старый пост, но я нахожусь в той же ситуации, и, похоже, вам удалось заставить его работать, у вас есть место, где этот код доступен? Или вы можете опубликовать его как решение? – Gusman