J'essaie d'accrocher le clavier dans mon programme, mais il y a quelque chose que je ne peux pas accomplir. La méthode ci-dessous est la partie la plus importante dans ma classe où je gère certaines combinaisons de touches. Tous fonctionnent, mais je veux aussi accrocher Ctrl-Alt-Tab. J'ai passé des heures à essayer de comprendre quoi faire, mais je suis venu les mains vides. Comment puis-je accrocher cette combinaison?Comment puis-je accrocher Ctrl-Alt-Tab?
Plus d'informations peuvent être trouvées ici:
http://msdn.microsoft.com/en-us/library/ms644967(VS.85).aspx
http://msdn.microsoft.com/en-us/library/ms927178.aspx
private static IntPtr KeyboardHookHandler(int nCode, IntPtr wParam, KBDLLHookStruct lParam)
{
if (nCode == 0)
{
if (((lParam.flags == 32) && (lParam.vkCode == 0x09)) || // Alt+Tab
((lParam.flags == 32) && (lParam.vkCode == 0x1B)) || // Alt+Esc
((lParam.flags == 0) && (lParam.vkCode == 0x1B)) || // Ctrl+Esc
((lParam.flags == 1) && (lParam.vkCode == 0x5B)) || // Left Windows Key
((lParam.flags == 1) && (lParam.vkCode == 0x5C)) || // Right Windows Key
((lParam.flags == 32) && (lParam.vkCode == 0x73)) || // Alt+F4
((lParam.flags == 32) && (lParam.vkCode == 0x20))) // Alt+Space
{
return new IntPtr(1);
}
}
return CallNextHookEx(hookPtr, nCode, wParam, lParam);
}
LCTRL a l'indicateur 0 lorsqu'il est enfoncé et 128 lorsqu'il est relâché. RCTRL a un drapeau 1 lorsqu'il est pressé et 129 lorsqu'il est relâché. Le système ne me donne pas la somme de trois drapeaux correspondant aux clés. Je peux seulement piéger deux clés au maximum. – user246392