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

C++ & C++ .NET

 > 

Windows

 > 

System

 > 

Hook de la souris avec DLL (marche à moitié !? o_o )


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

Hook de la souris avec DLL (marche à moitié !? o_o )

samedi 6 octobre 2007 à 13:15:48 | Hook de la souris avec DLL (marche à moitié !? o_o )

lol55

Bonjour à tous,

Je cherche à faire un Hook Globale de la souris AVEC une Dll. Je me suis aider des nombreuses source sur CPPFrance,

Voici mon code,
Le code de la DLL (nommé E) :
http://monsitecpp.free.fr/admin/Hook/E/
Le code principal :
http://monsitecpp.free.fr/admin/Hook/Souris/
(Evidement dans les options du Linker je met E.lib pour qu'il puisse appeler les fonction et je met aussi E.dll dans le dossier du programme ;) )

Malheuresement mon Hook fonctionne à moitié, il n'est pas Gloabal ! En effet il doit afficher une message lorsqu'un évènement de la souris s'est produit mais il l'affiche seulement quand je passe le poiteur sur ma fenêtre de Visual Studio (Projet Souris) qui est en train d'exécuter mon programme...

Comment faire pour que mon Hook soit Global et intercepte TOUS les évènements de la souris !?

Merci Beaucoup pour votre Aide !
samedi 6 octobre 2007 à 13:32:26 | Re : Hook de la souris avec DLL (marche à moitié !? o_o )

BruNews

Administrateur CodeS-SourceS
hhk  = SetWindowsHookEx(WH_MOUSE_LL, mouseProc, thismod, 0);

ciao...
BruNews, MVP VC++
samedi 6 octobre 2007 à 15:18:10 | Re : Hook de la souris avec DLL (marche à moitié !? o_o )

lol55

Plus ien ne se passe lorsque j'utilise WH_MOUSE_LL ! Et je n'ai même plus de MessageBox qui s'affiche lorsque je mets le curseur sur la fenêtre de Visual Studio (de mon Projet Souris) .

Pourrais-ce être lié a #define _WIN32_WINNT 0x0400 !? Car lorsque j'enlève cette ligne, il ne connais plus
WH_MOUSE_LL.


Merci!



samedi 6 octobre 2007 à 15:25:38 | Re : Hook de la souris avec DLL (marche à moitié !? o_o )

BruNews

Administrateur CodeS-SourceS
Réponse acceptée !

Nous sommes fin 2007, plus jamais inférieur à cela:
#define _WIN32_WINNT 0x0501

Va voir un peu les exemples de hook, j'en ai fait des tas (et d'autres aussi).
Surtout, jamais de MessageBox ou autre truc bloquant dans la fonction de hook.

ciao...
BruNews, MVP VC++

dimanche 7 octobre 2007 à 15:29:44 | Re : Hook de la souris avec DLL (marche à moitié !? o_o )

lol55

Je me suis aidé de ce code :
http://www.cppfrance.com/codes/HOOK-DLL-HOOK-FACILE-POUR-VB6_41774.aspx
J'ai un modifié pour qu'il Hook la souris comme je le souhaitait et ça marche ! J'arrive enfin à "Hooker" globalement !
(Il est vrai qu'il ne faut pas utiliser de fonction(s) bloquante tel que MessageBox dans l'Hook, Merci du conseil BruNews ! )

Mon but est maintenant de récupérer tous les évènements de la souris effectués (jusqu'à là c'est bon) sur la barre des tâches (là c'est plus dur ! )

Voici pour le moment la fonction Procédure de mon Hook :
LRESULT CALLBACK HookBarredesTachesProc(int nCode, WPARAM wParam, LPARAM lParam)
{
    if (nCode >= 0)
    {
            FILE* Fichier = NULL;
            Fichier = fopen("test.txt", "r+");
           
            if (Fichier != NULL)
            {
                fseek(Fichier, 0, SEEK_END);
                fputs("OK ! \n", Fichier);
                fclose(Fichier);
            }
    }
   
    return CallNextHookEx(HookBarredesTaches, nCode, wParam, lParam);
}

J'ai une variable Hwnd Global correspondant à l'Handle de la barre des tâches (la fenêtre "Shell_TrayWnd" )
Comment pourrais-faire pour savoir si lorsque je reçois un évènement dans mon Hook (donc de la souris), s'il est adressé à la barre des tâches !?

Je cherche un moyen de faire cela depuis plusieurs semaines mais je ne trouve toujours pas...
J'ai aussi regardé du côté de l'ID du processus,... si cela avait un rapport, je ne sais pas trop.

Merci Beaucoup pour votre Aide !!!
samedi 13 octobre 2007 à 01:04:06 | Re : Hook de la souris avec DLL (marche à moitié !? o_o )

lol55

Comprenez-vous ce que je cherche à faire ?
Ou ai-je mal expliqué !?
samedi 13 octobre 2007 à 10:09:24 | Re : Hook de la souris avec DLL (marche à moitié !? o_o )

BruNews

Administrateur CodeS-SourceS
Réponse acceptée !

AJOUTER UN MENU A NOTEPAD (WIN32)
http://www.cppfrance.com/code.aspx?ID=28181

Regarde VerifNotepadProcess() comment je détermine si est processus notepad.
Toi tu vérifieras si est processus de Shell_TrayWnd:
FindWindow()
GetWindowThreadProcessId()
et avec GetCurrentProcessId() comparé avec celui obtenu au dessus, on sait où on est.

ciao...
BruNews, MVP VC++

dimanche 14 octobre 2007 à 00:31:16 | Re : Hook de la souris avec DLL (marche à moitié !? o_o )

BruNews

Administrateur CodeS-SourceS
Réponse acceptée !
Je t'ai fait un exemple ici:
http://www.cppfrance.com/code.aspx?ID=44378

ciao...
BruNews, MVP VC++
lundi 15 octobre 2007 à 22:42:00 | Re : Hook de la souris avec DLL (marche à moitié !? o_o )

lol55


Merci Beaucoup BruNews !!! C'est exactement ça que je cherchais à faire !

Vraiment merci s'est super sympa de t'as part, je te revaudrai ça , c'est rare de voir des gens aussi sympa !

Je regarderai tout ça de plus prêt en détail ce week-end, là je suis...


Cette discussion est classée dans : code, dll, souris, hook, moitié


Répondre à ce message

Sujets en rapport avec ce message

Dll en c++ dans du code C [ par rurouni41 ] bonjour, je dois integrer une DLL codee en C++ dans un programme en c...Donc je voulais savoir s'il y avait moyen(et comment faire) d ouvrir et d'util code d'une souris en Vcpp [ par kinder ] Hi!Je recherche le code pour piloter une souris (ou un autre périphérique à la con pour en faire un "intérrupteur" on/off), branchée sur le port série Lien explicite de DLL [ par garslouche ] Bonjour,j'aimerai savoir si quelqu'un sait comment on accède à une variable (et pas à une fonction) en ayant lié explicitement une DLL ? En gros mon c DLL activeX [ par guiguimac ] Bonjour,n'ayant jamais rien fait de trés poussé en C++, j'aimerai savoir si qq'un dispose d'un tut ou d'un exemple de code permettant la réalisation d Poiteur de la souris : comment modifier ses coordonnées ? [ par eldered ] Salut ,J'ai vu un code pour la souris de TC sur ce site, qui est trés interessant d'ailleurs, mais je me pose la question suivante :Peut on modifier l gestion des exceptions dans Visual C++ 6 [ par devmail ] Bonjour a tous,je suis en cours de developpement d'un programme compose d'un prg principale et de plusieurs dll. J'ai terminer les traitements et souh Creer un hook dans une dll [ par zinotron ] 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'a Utilisation DLL SANS .lib [ par nasedo47 ] J'ai récupéré une DLL sur un site ainsi qu'une page avec les prototypes de toutes les fonctions contenues dans cette DLL.J'aimerais utiliser ces fonct Dll LoadLibrary --> Erreur [ par mortiis ] Bonjour à tous J'ai fait un prog qui devrais utiliser une dll pour faire un test j'ai fait un dll qui me fait afficher un MessageBox.Le problème est q dll et lib [ par petitou ] Salut, j'ai un problème lors de l'édition de lien à la compilation avec ma dll dans visual studio.Lorsque je crée ma dll qui utilise une lib, ça ne p


Nos sponsors


Sondage...

Comparez les prix

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 : 0,530 sec (3)

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