comment puis-je désactiver la touche windows en c#?
Comment puis-je désactiver ou de verrouillage, bouton windows?
- permenantly ou tout simplement pendant que votre programme est en cours d'exécution?
- Juste le bouton de windows, ou des trucs comme Ctrl+Esc trop?
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin d'un hook clavier. Commence quelque part comme ceci:
et continuer comme ceci:
Et pour plus de détails: http://www.codeproject.com/KB/winsdk/AntonioWinLock.aspx
L'aide de windows crochets est beaucoup plus propre que la modification du registre. En outre, parfois, les gens ont le programme d'installation personnalisé scancode cartes de leur propre, et de les écraser n'est pas une chose à faire.
L'utilisation de la touche windows crochet fonctions dont vous avez besoin pour DllImport un couple winapi fonctions:
Une explication assez complète et procédure pas à pas peut être trouvé sur CodeProject. Voici une lien direct à une classe de fichier à partir de cet exemple qui fait tout (Pour la compiler propre si vous êtes en utilisant WPF vous demandera manuellement le Système de référence.De Windows.Les formes dll, ou simplement en changeant le 'Système.De Windows.Les formulaires.Les touches de référence du Système.De Windows.D'entrée.La clé devrait fonctionner).
N'oubliez pas d'appeler UnhookWindowsHookEx() (la classe fonctionne en Dispose()) pour décrocher vos captures ou les gens vous haïssent.
En supposant que vous souhaitez désactiver la touche Windows permenantly et pas seulement lorsque votre code est mis en avant, alors vous pouvez le faire en modifiant le registre comme suit:
Pour désactiver:
Ajouter un nouveau REG_BINARY valeur appelée "Scancode Map" à "HKEY_LOCAL_ MACHINE\System\CurrentControlSet\Control\Keyboard Layout" avec une valeur de données de "00000000000000000300000000005BE000005CE000000000"
Pour permettre:
Supprimer le "Scancode Map" valeur entièrement à partir de la base de registre.