1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| Création dune procédure globale au projet :
PROCEDURE Procédure_Hook(ncode, wParam, lParam)
nCaractTouche est un entier
// Si le code est à 0, c'est bon (ca correspond au HC_ACTION)
SI ncode = 0
// Si c'est une touche enfoncée (ou touche système) => Si elle est relachée, ca sert à rien le traitement de la touche a déjà été fait
SI wParam <> WM_KEYDOWN _ET_ wParam <> WM_SYSKEYDOWN ALORS
RENVOYER API("user32","CallNextHookEx",gnHandleHook, ncode, wParam, lParam)
FIN
// Transfert du lparam en structure => Il correspond au code virtuel de la touche
Transfert(&nCaractTouche,lParam,4)
SELON nCaractTouche
CAS VK_LWIN, VK_RWIN // c'est une touche windows
Trace("WIN bloqué")
// ON bloque =>
RENVOYER 1
CAS VK_SNAPSHOT // C'est le impr écran
Trace("IMPR bloqué")
// ON bloque =>
RENVOYER 1
CAS VK_ESCAPE // Sur echap
// On vérifie si la touche ctrl est appuyée (le CTRL + ECHAP) ouvre le menu démarrer
SI ToucheEnfoncée(teControl,Vrai) ALORS
Trace("CTRL + ECHAP bloqué")
// CTRL + ECHAP => Menu démarrer
RENVOYER 1
FIN
AUTRE CAS
FIN
FIN
// Dans tous les cas (sauf ceux que l'on veut bloquer) on renvoie la suite du hook (pour permettre le traitement aux autres applis)
RENVOYER API("user32","CallNextHookEx",gnHandleHook, ncode, wParam, lParam) |
Partager