Accueil > Forum > > > > Combo des touches dans un Hook
Combo des touches dans un Hook
lundi 6 décembre 2004 à 21:35:40 |
Combo des touches dans un Hook

bdkiller
|
Salut, encore moi avec les Hooks xD J'arrive à mettre les hook en place, ca marche, sauf que je sais pas comment faire pour intercepter la combinaison de de touches (Ctrl + 1 par exemple). J'ai ceci comme code: LRESULT __stdcall HookClavier(int nCode, WPARAM wParam, LPARAM lParam) { if(nCode >= 0) { HWND hwamp; hwamp = FindWindow("Notepad", 0);
if(wParam == VK_F8 && (lParam & 0x80000000) { PostMessage(hwamp, WM_KEYDOWN, VK_F5, 0); } } return CallNextHookEx(hHook, nCode, wParam, lParam); }
|
Comment puis-je rajouter une deuxieme touche?
|
|
mardi 7 décembre 2004 à 00:14:27 |
Re : Combo des touches dans un Hook

racpp
|
Salut, Pour tester l'état de la touche Ctrl tu utilises la fonction GetKeyState() comme ceci: | int etat=GetKeyState(VK_CONTROL); |
Cette fonction retourne 0 si aucune des deux touches Ctrl n'est enfoncée. Ainsi, dans ton code tu peux faire: | if(wParam == VK_F8 && GetKeyState(VK_CONTROL) && ..... |
|
|
mardi 7 décembre 2004 à 00:47:18 |
Re : Combo des touches dans un Hook

racpp
|
J'ai oublié de péciser que dans certains cas la fonction GetKeyState() peut retourner une valeur erronée. Pour éviter cela il faut faire: ... && (GetKeyState(VK_CONTROL) & 0x8000) .... comme ça on est sûr que la touche Ctrl est réellement enfoncée. A noter que cette fonction retourne normalement un SHORT mais fonctionne aussi avec un int.
|
|
mardi 7 décembre 2004 à 07:08:13 |
Re : Combo des touches dans un Hook

bdkiller
|
Salut, merci mais c'est déjà testé, ca marche pas.. je viens de faire ca ainsi: if(nCode >= 0) { HWND hwamp; hwamp = FindWindow("Notepad", 0); //si je mets BOOL etat = ... ca revient en meme int etat=GetKeyState(VK_CONTROL);
if(wParam == VK_F8 && (etat & 0x8000) && (lParam & 0x80000000)) { PostMessage(hwamp, WM_KEYDOWN, VK_F5, 0); } } return CallNextHookEx(hHook, nCode, wParam, lParam); }
|
Ce qui est bizarre dans ce cas, c'est qu'il réagi quand j'appuis Alt Gr + F8 ! et il poste deux fois F5 dans notepad !! J'ai testé de faire: | if(wParam == VK_F8 && (GetKeyState(VK_CONTROL) & 0x8000)) |
ca revient en même, marche pas. Note: je suis sous win2k pro, ca peut jouer le role peut-etre? Merci encore
|
|
mardi 7 décembre 2004 à 10:00:11 |
Re : Combo des touches dans un Hook

BruNews
|
Une maniere de tester: if((GetKeyState(VK_CONTROL) >= 0xFFFFFF80) && (wParam == VK_F8))
ciao... BruNews, MVP VC++
|
|
mardi 7 décembre 2004 à 13:57:17 |
Re : Combo des touches dans un Hook

racpp
|
Salut, Voici une petite procédure de hook que je viens de tester avec mon code source : HOOK_GLOBAL_SANS_DLL __declspec(dllexport) LRESULT CALLBACK HookProc ( int nCode, WPARAM wParam, LPARAM lParam) { if (nCode == HC_ACTION) { if (wParam==WM_KEYDOWN) { KBDLLHOOKSTRUCT hookstruct = *((KBDLLHOOKSTRUCT*)lParam); if (hookstruct.vkCode==VK_F8 && (GetKeyState(VK_CONTROL) & 0x8000)) { MessageBox(0,"CTRL+F8","",0); } } } return CallNextHookEx(hHook, nCode, wParam, lParam); }
|
Ca marche justement sur Win2k pro.
|
|
mardi 7 décembre 2004 à 21:06:37 |
Re : Combo des touches dans un Hook

bdkiller
|
racpp je sais pas le mettre en place dans Borland c++ (dans quel evenement OnFormCreate ou ou encore...)
Bru, ca passe pas chez moi! :'(
|
|
mardi 7 décembre 2004 à 21:16:03 |
Re : Combo des touches dans un Hook

BruNews
|
Mais votre Borland, il ne permet pas d'ecrire du vrai code API au lieu de ne faire que de l'interprete avec des OnFormCreate et autres bidules mystiques ? C'est tout de meme + simple quand on est maitre de son code.
ciao... BruNews, MVP VC++
|
|
mardi 7 décembre 2004 à 22:42:25 |
Re : Combo des touches dans un Hook

bdkiller
|
Aucunde idée Bru. Ton code a l'air bon mais passe pas. Si je mets juste : | if(wParam == VK_F8 && (lParam & 0x8000000)) |
la il fait correctement l'envoi de F5 sur notepad, si j'enleves 0x80000000 ca envoit 2 fois de suite F5... et je sais pas pour quelle raison il marche pas avec ton code.
|
|
Cette discussion est classée dans : code, touches, wparam, hook, lparam
Répondre à ce message
Sujets en rapport avec ce message
Hook messages de windows [ par deck_bsd ]
Bonjour a tous,Voila je suis sur le point de finir mon 1er hook, mais voila , il ne fonctionne que une fois. Il intercepte une fois le message voulu (
Hook clavier sous windows [ par gamani5 ]
sltje sais il y a deja beaucoup de tuto sur le sujet mais j en ai lu plein mais j ai toujours un probleme, j arrive a detecter l utilisation d une tou
Hook clavier et fenêtre premier plan [ par krokro6 ]
Salut à tous, j'ai un petit problème avec ce code la : #include #include #include #include using namespace std;#define DLLEXPORT __declsp
HOOK - Help [DevCPP] [ par guitoulefoux ]
Bonjour,J'essaye de faire un hook (mon 1er) mais a chaque fois qu'il se lance j'ai un pb d'affectation mémoire.en fait le HOOK récupère les actions cl
[HOOK]Encore le meme probleme.. [ par bdkiller ]
Salut,Bon, après pas mal d'heures passés là-dessus, j'ai la DLL qui se compile sans erreurs, l'appli principale qui se compile sans erreurs également!
Hook des touches F5 d'une autre appli [ par Kheo ]
Bonjour, Est ce que quelqu'un pourrait me donner quelques infos sur la méthode à employer pour capter des touches dans une autre appli.En fait je veux
Windows Message OnNotifyIcon [ par unionx ]
bonjourje veux savoir ou je vais trouver la fonction ::OnNotifyIcon(WPARAM wParam, LPARAM lParam) j'ai bien chercher dans la partie ClassWizard et eve
transcodage arabe anglais [ par elmarokinho ]
bonjour, je suis en DUT 2e année ... je dois réaliser un projet pr la mi-mars ;:realisation d'un logiciel de transcodage anglais/arabe ...<br
Je trouve pas le bon code [ par vah bi ]
Bonjour à tous , voilà je débute en c et comme editeur j'ai le visual c++.Je fais actuellement une application avec l'api de visual c++ mais en lang
Comment faire pour re_afficher un dialogue apres "RedrawWindow" API sous DEV cpp [ par LouisJean ]
louisjean dev cpp Bonjours a tous!Comment faire pour remontrer le dialogue "Mon_DIALOG" en API wind32 sous DEV
Livres en rapport
|
Derniers Blogs
SQL SERVER : QUERY NOTIFICATION OU COMMENT êTRE NOTIFIé DE MODIFICATIONS DE DONNéES CôTé APPLICATIONSQL SERVER : QUERY NOTIFICATION OU COMMENT êTRE NOTIFIé DE MODIFICATIONS DE DONNéES CôTé APPLICATION par christian
Cette fonctionnalité à vue le jour dans Ado.Net 2.0 et s'appuie sur SQL Server 2005 (et plus) même si elle fonctionne avec SQL Server 2000. Le principe de fonctionnement côté applicatif est assez simple, on fournit une requête et lorsque le résultat d...
Cliquez pour lire la suite de l'article par christian [WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL?[WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL? par JeremyJeanson
Certain d'entre vous on peut être vécu cette situation embarrassante après quelques temps passer avec WF4 : Au début avec mon " ActivityDesigner" , tout allait bien. Et puis un jour j'ai au des problèmes de " Binding" . Alors nous sommes allé sur le site ...
Cliquez pour lire la suite de l'article par JeremyJeanson MYTIC - SHAREPOINT 2010 : DéJà UN MYTHE MICROSOFT ?MYTIC - SHAREPOINT 2010 : DéJà UN MYTHE MICROSOFT ? par junarnoalg
La prochaine session de MyTIC aura lieu à Namur, le 23 mars prochain. Pendant presque une heure, nous parlerons de SharePoint 2010. Voici un aperçu du programme.
Accueil : 17h30 Début de la session : 18h00 - Les nouvelles int...
Cliquez pour lire la suite de l'article par junarnoalg [MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA[MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA par cyril
Le deuxième keynote du mix fut très riche en contenu. Internet Explorer 9 Juste un après le lancement de Internet Explorer 8, Microsoft a dévoilé les nouveautés de Internet Explorer 9. Désormais, IE supportera HTML5, SVG et CSS3. L'élément ...
Cliquez pour lire la suite de l'article par cyril
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|