zinotron
Messages postés65Date d'inscriptionvendredi 14 février 2003StatutMembreDernière intervention11 septembre 2004
-
25 janv. 2004 à 18:02
zinotron
Messages postés65Date d'inscriptionvendredi 14 février 2003StatutMembreDernière intervention11 septembre 2004
-
26 janv. 2004 à 07:42
Je n'ai pas tout compris moi ...
j'ai fait une rechercher dans les systeme de creation de hook dans l'API win32, et je compris cela : RIEN.
enfin si j'ai capte deux trois choses, mais pas assez pour aller coder ...
alors, je voudrais faire un hook de thread (donc dans une dll)
j'ai capte les fonction kil fallait utiliser, mais pas comment les foutre dans une dll, ni comment les utiliser dans le prog ...
si qq1 peut m'aider .../
merci
ps: j'ai deja mate les hook de thread dans cppfrance :-)
lastpixl
Messages postés56Date d'inscriptionsamedi 28 juin 2003StatutMembreDernière intervention16 février 2006 25 janv. 2004 à 20:48
Un hook de thread est un hok qui s'applique uniquement au thread auquel il est attaché.
Donc pas forcément dans une Dll
Les hokk qui sont obligatoirement dansune Dll sont de hook systeme : ils s'appliquent à tout le systeme.
Pour un hook Dll :
Faire un Dll-Loader :
HINSTANCE hinstDLL; // instance de la DLL
hinstDLL = LoadLibrary("HddlProj.dll"); // Chargement de la librairie
if (!hinstDLL) // Erreur lors du chargement de la librairie ?
GetProcAdress est unefonction ed la dll, exportée et qui permet d'initialiser les hooks (Pour les fonction exportées il existe plein de tuts bien faits...)
Et une fois la dll chargée on initialise le hook :
//Dans la dll
HHOOK KeybdHookHandle;
LRESULT CALLBACK KeybdProc(int nCode,WPARAM wParam,LPARAM lParam); //Le prototype
HINSTANCE HInst; // Handle d'intance de la DLL
//Il faut bien sur mettre la valeur du handle de linstance de la dll dans HInst
void _export InitHook(HWND hDest) //_export -> si tu as BCB5
{
KeybdHookHandle = SetWindowsHookEx(WH_KEYBOARD, // Créer un hook sur le clavier
(HOOKPROC)KeybdProc, // Utiliser la fonction KeybdProc
HInst, // Dans la DLL d'instance HInst
0); // Pour tous les threads
}
Apres ya plus qu'à créer une fonction callback pour gerer un hook, clavier ici
LRESULT CALLBACK _export KeybdProc(int nCode,WPARAM wParam,LPARAM lParam)
{
if (nCode < 0) // do not process message
return CallNextHookEx(KeybdHookHandle, nCode,
wParam, lParam);
//Gestion du message