begin process at 2012 05 30 11:31:20
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Systeme

 > 

spy++ et hook


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

spy++ et hook

samedi 26 juin 2004 à 23:19:57 | spy++ et hook

bamoo

Bonjour, j'ai un petit problème avec un hook qui en marche pas. J'aimerais intercepter les messages envoyés à une application. j'ai utilisé spy++ pour déterminer les messages envoyés mais je n'arrive pas à les intercepter.

Voici le code de la dll utilisée pour le hook :

#include <windows.h>
#include <winuser.h>
#include <commctrl.h>

HINSTANCE thismod;
HHOOK hhk;

BOOL WINAPI DllMain(HINSTANCE hDll, DWORD dwReason, LPVOID Reserved)
{
if(dwReason == DLL_PROCESS_ATTACH)
thismod = hDll;

return 1;
}

LRESULT CALLBACK kbdWinAmp(int nCode, WPARAM wParam, LPARAM lParam) {
if(nCode >= 0)
{

MSG* pMSG = (MSG*)lParam;

switch(pMSG->message)
{
case WM_MDISETMENU :
case WM_NCHITTEST :
case WM_NCPAINT:
case WM_GETTEXT:
MessageBeep(MB_OK);
MessageBoxA(0,"ici","ici",0);
break;
}

}

return CallNextHookEx(hhk, nCode, wParam, lParam);
}

extern "C" __declspec(dllexport) int __stdcall Intercepte()
{
if(!hhk)
hhk = SetWindowsHookEx(WH_GETMESSAGE, kbdWinAmp, thismod, 0);

return (int) hhk;
}

extern "C" __declspec(dllexport) void __stdcall FinIntercepte()
{
if(hhk)
{
UnhookWindowsHookEx(hhk);
hhk = 0;
}
}



Autre chose, est il possible de voir les mesages au lancement d'une application avec spy++ ?

Pouvez vous m'aidez svp ?
Merci
dimanche 27 juin 2004 à 00:51:34 | Re : spy++ et hook

BruNews

Administrateur CodeS-SourceS
Faut bannir MessageBox et toute autre action user pendant le traitement du hook sinon tu auras de la reentrance donc boucle infinie et tu risques d'embarquer quasi tous les processus dans la galere.
On verra le reste demain.

ciao...
BruNews, Admin CS, MVP Visual C++
dimanche 27 juin 2004 à 14:28:39 | Re : spy++ et hook

BruNews

Administrateur CodeS-SourceS
bon je t'ai fait un exemple qui log 3 messages seulement:
WM_NCHITTEST, WM_NCPAINT et WM_GETTEXT.
Log est niveau systeme toutes fenetres, enregistre dans fichier M.txt dans dossier temp du exe lanceur.
Tests faits sur XP et Server 2003.
M.txt contient ce genre de lignes:
WM_NCPAINT
WM_NCPAINT
WM_GETTEXT
WM_NCPAINT
WM_NCPAINT
WM_GETTEXT
WM_NCHITTEST
WM_NCHITTEST
WM_NCHITTEST
WM_GETTEXT
WM_NCPAINT
WM_GETTEXT
....

1 event par ligne sans distinction de la fenetre ni rien d'autre. A toi d'ajouter ce dont tu auras besoin (titre fenetre etc...), tu peux absolument tout capter sur ce modele mais fais bien gaffe a ne pas planter le systeme. Je te le passe fonctionnant mais je decline toute responsabilite sur modifs erronnees...

Passe ton mail dans un message perso sur ce site pour envoi.

ciao...
BruNews, Admin CS, MVP Visual C++
lundi 28 juin 2004 à 18:25:18 | Re : spy++ et hook

BruNews

Administrateur CodeS-SourceS
bamoo > Excuse mais il y a un BIG defaut dans exemple fourni (partage du hfl interprocessus est errone). Tu me redonneras ton mail (eh oui deja disparu) si tu veux un autre exemple, correct cette fois.

ciao...
BruNews, Admin CS, MVP Visual C++
lundi 28 juin 2004 à 18:41:24 | Re : spy++ et hook

bamoo


hfl ?
En tout cas, je l'ai pas vu ce problème mais je veux bien que tu me le renvois (je te redonne mon mail en message perso).

Sinon, j'ai une petit question vite fait, comment faire pour empêcher que le message soit transmis à l'application cible ?
J'ai essayé retrun 0 et return 1 au lieu de return CallNextHookEx, mais apparemment, ca ne marche pas...

Merci

lundi 28 juin 2004 à 19:48:22 | Re : spy++ et hook

BruNews

Administrateur CodeS-SourceS
Le hook de mon exemple ne doit pas etre interrompu.
Si tu veux en intercepter et ne pas repasser, faut mettre d'autres hooks dans la dll, aucun probleme si plusieurs dans la meme dll, faut juste faire gaffe a la coherence de la chose.

Je suis en train de modifier completement exemple precedent.

ciao...
BruNews, Admin CS, MVP Visual C++
lundi 28 juin 2004 à 20:48:26 | Re : spy++ et hook

bamoo

Je n'ai pas bien compris comment il fallait faire pour empêcher la retransmission. Peut tu m'en dire un peu plus svp ?
Merci :-)
lundi 28 juin 2004 à 21:02:54 | Re : spy++ et hook

BruNews

Administrateur CodeS-SourceS
Certains hooks comme WH_KEYBOARD permettent qu'on interrompe la retransmission, return 1 par exemple, ou qu'on modifie les valeurs a transmettre. Avec d'autres c'est totalement deconseille, tu risques le crash. Ceci dit on peut parfois, c'est une question de logique, regarde bien le type de message, si tu penses que non vital alors tu testes mais enregistre bien tout avant.

ciao...
BruNews, Admin CS, MVP Visual C++
lundi 28 juin 2004 à 21:09:43 | Re : spy++ et hook

bamoo


Donc, si j'ai bien compris, avec "return 1", le message n'est pas transmis ? bizarre, il me sembalit que si, je vais tester c sur des messages pas très importants (si j'en trouve :-)
Merci


Cette discussion est classée dans : case, hook, lparam, spy, hhk


Répondre à ce message

Sujets en rapport avec ce message

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 sur la touche entrée [ par Anacr0x ] voila mon problème, jme suis aidé avec la source de BruNews pour faire ce code mais ca ne marche pas !// le HOOK LOCAL est ICILRESULT CALLBACK GetMsgP probleme dans mon hook clavier [ par youpiyoyo ] je me suis po embeter j'ai pris le code de brunews a ce sujetj'aimerai faire un hook kan on appuie a la fois sur la touche windows et un ctrl...j'ai c [Dev C++] disparition hook [ par erehtnaP ] Salut, je commence en C++, et je voudrais creer un hook global avec Dev-C++ Le code de la dll et de l'exe se compile sans erreur, les fonction de mis TEXTURE OPENGL [ par Batman60 ] SALUTje voudrais afficher des textures bmp sur les faces d'un cube ,un défilement de 10 textures par exemple ,qui s'affichent une par une ,la même sur 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 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 clavier & souris [ par sm777 ] Bonjour, J'aimerais implémenter un hook clavier/souris. Je me suis inspirée de l'exemple 'inactivité' dans les tuto mais j'ai des soucis car je pens PROBLEME DE CHARGEMENT JPEG DANS UN ECRAN DE VEILLE [ par Batman60 ] bonjourclic droit sur l'exe et puis "tester" le prog fonctionne à merveille mais une fois installé à l'execution de l'ecran de veille les textures jpe 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


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 : 5,647 sec (3)

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