Io lavoro su un progetto chiamato UAWKS (supporto non ufficiale per tastiera wireless Apple) che aiuta gli utenti Windows ad usare la tastiera bluetooth di Apple. Uno dei principali obiettivi di UAWKS è quello di scambiare il Cmd chiave (che si comporta come Winkey in Windows) con Ctrl, che consente agli utenti di fare Cmd + C per la copia, Cmd + T per la nuova scheda, ecc.Ganci tastiera/SendInput di basso livello con Winkey + L possibile? (Il blocco della workstation è intercettato in Vista e superiore)
Attualmente è stato sviluppato utilizzando AutoHotkey, che ha funzionato abbastanza bene in Windows XP. Tuttavia, su Vista e Windows 7, Cmd + L causa problemi:
- Indipendentemente ganci basso livello della tastiera, Win + L è stato intercettato sempre da Windows e normalmente blocca la workstation. ..
- è possibile disabilitare il blocco workstation con this registry hack, ma premendo Win + L ancora non può essere ripresa nel AHK
- Premere Win + L lascia Winkey nello stato Keydown fino alla successiva (aggiuntiva) Winkey Up. Anche la simulazione di un evento Keyup non funziona!
Sembra che Win + L è un accordo speciale che scombina tutto il resto in su.
Ho esaminato il codice sorgente AHK e tentano di risolvere questo problema in SendKey()
in keyboard_mouse.cpp (vicino alla riga 883 in v1.0.48.05), ma non funziona. Ho scritto la mia applicazione di aggancio per tastiera di basso livello in C# e vedo lo stesso problema.
Qualcun altro ha incontrato questo? C'è una soluzione?
Devo aggiungere che ci sono post sul forum su AutoHotkey.com, ma le soluzioni sono obsolete o errate (vedi sotto). Inoltre, la mia domanda non è veramente limitata a AutoHotkey. Alla fine voglio reimplementare l'intero programma in C#. Questa è più una domanda su come Windows Vista e Windows 7 considerano Winkey + L in modo diverso, e se qualcuno lo ha già visto/risolto prima. http://www.autohotkey.com/forum/viewtopic.php?t=27554&highlight=winkey http://www.autohotkey.com/forum/viewtopic.php?t=15513&postdays=0&postorder=asc&start=0 –