Pregunta

Estoy usando el código que encontré en CodeProject.com por un precio bajo- gancho de teclado nivelado . El único problema es que usa llamadas DLL externas que no funcionan en mono. Me preguntaba si alguien sabía de una manera de lograr lo mismo que ese código, pero ¿se ejecutará tanto en Windows usando .net como en Linux usando mono?

Editar: Aclarando lo que estoy tratando de hacer: Estoy creando una aplicación similar a Dashboard . El programa se encuentra en la bandeja del sistema y cuando el usuario presiona la tecla de acceso rápido, abrirá todos los dispositivos. Por lo tanto, el programa no tiene enfoque, por lo que generalmente no capta ninguna pulsación, así que estoy usando el gancho de teclado de bajo nivel y engancho las dos teclas que el usuario define como teclas de acceso rápido. Pero estoy usando una llamada de DLL de Windows para eso, que no funciona en Linux usando mono. Así que me pregunto si hay una manera de hacer lo mismo, ¿pero se ejecutará en Linux usando mono?

¿Fue útil?

Solución

No es posible obtener este comportamiento utilizando solo .Net. Debe utilizar un controlador binario para cada plataforma en la que se ejecute (Windows, Linux, Mac OS). Podría ser posible usar solo P / Invoke (detectar en qué sistema operativo está ejecutando, llamar a las bibliotecas del sistema apropiadas) para que no tenga que distribuir ningún " extra " dll / so / dylib.

Otros consejos

Sin saber lo que está tratando de capturar, es difícil estar seguro de qué funcionará para usted. Es posible que desee ver el uso de Application.AddMessageFilter.

Un ejemplo está aquí: http://dn.codegear.com/article/30129

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top