begin process at 2012 05 30 19:44:03
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

Autre

 > 

vs2005 kbdhook


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

vs2005 kbdhook

vendredi 25 janvier 2008 à 22:33:39 | vs2005 kbdhook

Sebopop2

bonjour,
j'ai cree une app avec une dll pour faire un hook global clavier, malheureusement celui ci ne fonctionne pas.

#include

"toolbox.h"

static

HHOOK hkbhk = 0;

static

HINSTANCE hdll = 0;

LRESULT CALLBACK KbdhkProc(

int nCode, WPARAM wParam, LPARAM lParam)

{

if(!nCode)

return CallNextHookEx(hkbhk, nCode, wParam, lParam);

if(wParam==WM_KEYUP)

{

MessageBox(0, "ok c bon", 0, 0);

return 1;

}

return CallNextHookEx(hkbhk, nCode, wParam, lParam);

}

 

BOOL WINAPI DllMain(HINSTANCE hDll, DWORD dwReason, LPVOID Reserved)

{

if(dwReason == DLL_PROCESS_ATTACH)

{

hdll = hDll;

hkbhk = SetWindowsHookEx(WH_KEYBOARD, KbdhkProc, hDll, 0);

}

if(dwReason == DLL_PROCESS_DETACH)

{

UnhookWindowsHookEx(hkbhk);

}

return 1;

}

Des idees?

vendredi 25 janvier 2008 à 23:13:58 | Re : vs2005 kbdhook

BruNews

Administrateur CodeS-SourceS
Une excellente idée, que tu consultes les nombreux exemples que j'ai fait sur ce sujet.

La DLL c'est le code qui sera injecté dans les processus, ce n'est donc pas dedans qu'on appelle SetWindowsHookEx, c'est l'exe qui veut mapper la DLL dans les processus qui l'appellera. Idem pour démappage UnhookWindowsHookEx.

ciao...
BruNews, MVP VC++
vendredi 25 janvier 2008 à 23:22:43 | Re : vs2005 kbdhook

Sebopop2

Merci de repondre aussi vite!
apparement le prob vien de la declaration des fonctions, si je dis pas de betise c la table dadresse des fonctions dans l'executable, mais en quoi cela gene t il le callback?
vendredi 25 janvier 2008 à 23:48:33 | Re : vs2005 kbdhook

BruNews

Administrateur CodeS-SourceS
Mais c'est heureux que ça ne fonctionne pas, tu crées une réentrance infinie en appelant le chargement de hook dans l'attachProcess de la dll, c'est du terrorisme d'OS.

ciao...
BruNews, MVP VC++
vendredi 25 janvier 2008 à 23:50:17 | Re : vs2005 kbdhook

Sebopop2

le fait dappeller sethook a l'attach d'accord, mais pour la reloc?
vendredi 25 janvier 2008 à 23:55:53 | Re : vs2005 kbdhook

BruNews

Administrateur CodeS-SourceS
La signature du callback est bonne, no prob d'adresse non plus.

ciao...
BruNews, MVP VC++
vendredi 25 janvier 2008 à 23:58:19 | Re : vs2005 kbdhook

BruNews

Administrateur CodeS-SourceS
Autre chose, jamais de MessageBox ni autre fonction blocante dans un hook, il faut traiter le plus vite possible sinon le system repasse le message sans t'attendre.

ciao...
BruNews, MVP VC++
samedi 26 janvier 2008 à 00:08:16 | Re : vs2005 kbdhook

Sebopop2

La msgbox c juste pour debug, apres c un postmsg.Ca devrai marcher,
merci encore!
samedi 26 janvier 2008 à 00:09:04 | Re : vs2005 kbdhook

Sebopop2

et je ferais des efforts pour pour ecrire correctement

samedi 26 janvier 2008 à 00:12:39 | Re : vs2005 kbdhook

Sebopop2

Un dernier truc,tout marche bien sauf que le hookmsg, malgre le return 1 n'est pas retire bien qu'il soit traite(msgbox).D'ou cela vient-il et comment y remedier?

1 2

Cette discussion est classée dans : wparam, lparam, ncode, hdll, hkbhk


Répondre à ce message

Sujets en rapport avec ce message

Annuler Action Menu en Hookant [ par Zootella ] Hello, j'ai cette procédure hook: LRESULT CALLBACK HookMenuMessage(int nCode, WPARAM wParam, LPARAM lParam) { if(nCode == HC_ACTION) { Hooks [ par M5i9k ] Bonsoir,je voulais savoir si il était possible de creer un hook lors du chargement d'un dll c'est à dire dans la fonction DllMain d'un dll, j'essaye d Hook + GetForegroundWindow + SendMessage [ par erodatam ] Bonjour, Je souhaite faire un gestionnaire de presse papier en application win32. Grace à un hook, je suis capable d'intercepter les pressions sur le Hook WH_MOUSE_LL [ par vecchio56 ] Bonjour,J'utilise un hook bas niveau de type WH_MOUSE_LL, et j'ai un problème lorque je cherche a fermer ma fenêtre principale (la souris se bloque). Créer sa classe OpenGL [problème pointeur de fonction membre] [ par Mickatronic ] Bonjour, je réalise un projet tutauré en C++, dans ce projet je dois créer une classe qui va me permettre de généré la fenêtre OpenGl. Comme je savais 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 Problème sous-classement [ par Albanderuaz ] Bonjour !J'ai un petit problème avec ce code qui est censé, grâce à un sous-classement, modifier le texte de tous les boutons grâce à un hook global. Problème de message windows [ par Jbs106 ] Bonjour Bonjour, comme je l'ai précisé dans le titre, je souhaite réaliser une application de dessin, un SKETCHER avec les MFCs, je l'ai réalisé grac


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,402 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales