2017-09-14 5 views
2

Ainsi, par exemple, je peux facilement enregistrer un raccourci clavier qui est une combinaison de Maj, Alt (touches Mod) et Flèche:API Windows - l'enregistrement d'un raccourci clavier avec plusieurs clés combinaison

RegisterHotKey(NULL, TOP, MOD_SHIFT | MOD_ALT, VK_UP);

Cela fonctionne bien mais ce que je suis après est d'enregistrer une touche de raccourci avec les mêmes touches que ci-dessus PLUS une autre touche normale comme flèche gauche, donc la combinaison serait Shift, Alt, Flèche haut, Flèche gauche.

Il n'y a pas d'espace dans la fonction pour un autre argument, et j'ai essayé de faire Bitwise OU pour les touches Haut et Flèche gauche comme

VK_UP | VK_LEFT

... mais il ne fonctionne pas. Si quelqu'un a déjà rencontré ce problème ou sait comment je procède s'il vous plaît aider!

+0

Vous ne pouvez pas faire cela en utilisant l'API hotkey. Vous pouvez essayer de vérifier (en utilisant 'GetKeyState') si la deuxième touche est maintenue enfoncée lorsque votre touche de raccourci principale est déclenchée, mais je suppose qu'elle ne peut pas être déclenchée si l'utilisateur appuie sur les deux touches dans le mauvais ordre. –

+2

Mon programme utilise Shift + Alt + Up comme l'un de ses raccourcis. Votre programme vient de casser mon programme. En d'autres termes, les raccourcis clavier globaux ne sont appropriés que dans une situation de kiosque, la situation même où vous n'en avez pas besoin! –

+0

@DavidHeffernan Je crois que RegisterHotkey (...) ne fonctionne pas lorsque vous essayez d'enregistrer un raccourci clavier déjà utilisé. –

Répondre

1

Les raccourcis clavier Windows ne prennent pas en charge plusieurs clés (non modifiables). Vous ne pouvez pas bit ou plusieurs valeurs VK_*, seules les valeurs MOD_* peuvent être combinées.

Si vous avez désespérément besoin de cette fonctionnalité, vous devez utiliser un low-level keyboard hook et suivre les clés vous-même. L'accrochage affecte les performances globales du système et devrait être évité si possible. Si vous décidez de faire cela, vous devez vous rappeler que les utilisateurs de Windows n'ont pas l'habitude d'appuyer sur des raccourcis clavier de cette façon, seuls les menus permettent un modèle similaire mais vous n'avez pas besoin du modificateur Alt pour les faire fonctionner . Vous devez également vous rappeler de tester votre hook avec StickyKeys et d'autres fonctionnalités d'accessibilité ...