Pergunta

Eu estou usando o código que eu encontrei na CodeProject.com para uma baixa nível gancho de teclado. O único problema é que ele usa chamadas DLL externos que não funcionam em mono. Fiquei me perguntando se alguém sabia de uma maneira de realizar a mesma coisa que esse código, mas será executado em Windows usando .net e Linux usando mono?

Edit: Esclarecer o que estou tentando fazer: Eu estou fazendo um Painel como aplicação. O programa senta na bandeja do sistema e quando o usuário pressiona a tecla de atalho, ele irá aparecer todos os gadgets. Assim, o programa não tem foco, tão tipicamente não vai pegar quaisquer teclas, por isso estou usando o gancho do teclado de baixo nível e eu ligar as duas chaves que os define usuário como as teclas de atalho. Mas eu estou usando uma chamada de Windows DLL para isso, que não funciona no Linux usando mono. Então, eu estou querendo saber se há uma maneira de fazer a mesma coisa, mas será executado em Linux usando mono?

Foi útil?

Solução

Não é possível obter esse comportamento usando apenas .Net. Você tem que usar um driver binário para cada plataforma que você rodar em (Windows, Linux, Mac OS). Pode ser possível usar apenas P / Invoke (detectar o que OS você está rodando, chamar bibliotecas de sistema adequados) para que você não terá que distribuir qualquer "extra" dll / so / dylib.

Outras dicas

Sem saber o que você está tentando capturar, é difícil ter certeza de que vai funcionar para você. Você pode querer olhar usando Application.AddMessageFilter.

Um exemplo é aqui: http://dn.codegear.com/article/30129

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top