Я использую код, который нашел на CodeProject.com для низкоуровневой клавиатуры. Единственная проблема в том, что он использует внешние вызовы DLL, которые не работают в моно. Мне было интересно, знает ли кто-нибудь способ выполнить то же самое, что и этот код, но будет ли он работать как в Windows с использованием .net, так и в Linux с использованием моно?
Обновлено: уточнение того, что я пытаюсь сделать: Я делаю Дашборд как приложение. Программа находится в системном трее, и когда пользователь нажимает горячую клавишу, появляются все гаджеты. Таким образом, программа не имеет фокуса, поэтому обычно она не улавливает нажатия клавиш, поэтому я использую низкоуровневую ловушку клавиатуры и подключаю две клавиши, которые пользователь определяет как горячие клавиши. Но я использую для этого вызов Windows DLL, который не работает в Linux с использованием моно. Так что мне интересно, есть ли способ сделать то же самое, но будет ли работать в Linux с использованием моно?
Я отредактировал и добавил некоторые пояснения.





Не зная, что вы пытаетесь запечатлеть, трудно быть уверенным, что сработает для вас. Вы можете посмотреть, используя Application.AddMessageFilter.
Пример здесь: http://dn.codegear.com/article/30129
Невозможно добиться такого поведения, используя только .Net. Вы должны использовать двоичный драйвер для каждой платформы, на которой вы работаете (Windows, Linux, Mac OS). Возможно, можно будет использовать только P / Invoke (определить, на какой ОС вы работаете, вызвать соответствующие системные библиотеки), чтобы вам не пришлось распространять какую-либо «лишнюю» dll / so / dylib.
так что мне придется делать одно для Windows, а другое для Linux? Хорошо, я подумал, что мне, возможно, придется это сделать. Как бы мне тогда это сделать в Linux?
Я удалил свой ответ, так как он действительно не отвечал, как добавить низкоуровневую клавиатуру в Linux.