Domanda

Sto usando il codice che ho trovato su CodeProject.com per un valore basso- gancio per tastiera di livello . L'unico problema è che utilizza chiamate DLL esterne che non funzionano in mono. Mi chiedevo se qualcuno fosse a conoscenza di un modo per ottenere la stessa cosa di quel codice, ma funzionerà sia in Windows usando .net, sia in Linux usando mono?

Modifica: chiarire cosa sto cercando di fare: Sto realizzando un Dashboard come un'applicazione . Il programma si trova nella barra delle applicazioni e quando l'utente preme il tasto di scelta rapida, farà apparire tutti i gadget. Quindi il programma non ha lo stato attivo, quindi in genere non cattura alcuna sequenza di tasti, quindi sto usando l'hook della tastiera di basso livello e aggancio i due tasti che l'utente definisce come tasti di scelta rapida. Ma sto usando una chiamata DLL di Windows per questo, che non funziona in Linux usando mono. Quindi mi chiedo se c'è un modo per fare la stessa cosa, ma funzionerà in Linux usando mono?

È stato utile?

Soluzione

Non è possibile ottenere questo comportamento usando solo .Net. Devi usare un driver binario per ogni piattaforma su cui corri (Windows, Linux, Mac OS). Potrebbe essere possibile utilizzare solo P / Invoke (rilevare su quale sistema operativo si è in esecuzione, chiamare le librerie di sistema appropriate) in modo da non dover distribuire alcun "extra" dll / così / dylib.

Altri suggerimenti

Senza sapere cosa stai cercando di catturare, è difficile essere sicuri di cosa funzionerà per te. Potresti voler guardare usando Application.AddMessageFilter.

Un esempio è qui: http://dn.codegear.com/article/30129

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top