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
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
RE : WIN APIRE : WIN API par racpp
Cliquez pour lire la suite par racpp
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|