Accueil > Forum > > > > Hook et focus
Hook et focus
dimanche 3 juin 2007 à 23:41:36 |
Hook et focus

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 qui met en place le hook (InitHook) à partir d'un loader le hook ne se place que sur le programme avec lequel j'ai lancé la fonction InitHook ? exemple : http://rafb.net/p/QjV8FS98.html ce code source de hook enregistre les coordonnées de la souris à chaque appui sur le bouton droit de la souris. Une fois ce code compilé j'obtiens ma jolie dll qui marche à merveille mais le problème, c'est qu'elle ne marche que lorsque je fais un click droit sur le programme avec lequel j'ai appellée la fonction InitHook :'(. Personne ne peut m'aider à régler ce problèmpe je vous en supplie :>. Merci à tout ce qui m'aideront.
|
|
lundi 4 juin 2007 à 00:16:36 |
Re : Hook et focus

BruNews
|
Un handle de fichier est attribué au processus l'ayant demandé, totalement invalide dans un autre processus.
ciao... BruNews, MVP VC++
|
|
lundi 4 juin 2007 à 12:36:19 |
Re : Hook et focus

krokro6
|
Ah ok, merci, mais je peux faire quoi alors pour que cela marche sur les autre processus stp ?
|
|
lundi 4 juin 2007 à 13:13:16 |
Re : Hook et focus
|
lundi 4 juin 2007 à 15:34:23 |
Re : Hook et focus

BruNews
|
Inutile le test d'écriture, ne peut pas passer.
Dans la mouseProc: char buf[100]; DWORD d; hfl = CreateFile(...); // avec OPEN_ALWAYS if(hfl == INVALID_HANDLE_VALUE) return; SetFilePointer(hfl, 0, 0, FILE_END); // mettre coordonnées à tamponner dans buf (complet avec CRLF en finale) WriteFile(hfl, buf, strlen(buf), &d, 0); CloseHandle(hfl);
Ainsi tu vires les stream qui n'ont rien à faire dans du code API. Une DLL de hook doit être la plus légère possible.
ciao... BruNews, MVP VC++
|
|
lundi 4 juin 2007 à 16:36:42 |
Re : Hook et focus

rt15
|
Heu... Pourquoi le test ne passerait-il pas ? La première fois, ok, il ne passe pas, mais pourquoi ne passerait-il pas la deuxième ? Si après échec d'écriture, on ouvre le fichier avec FILE_SHARE_WRITE et que l'on met son handle dans une variable globale ou statique, pourquoi le handle perdrait sa validité ( Ces variables son unique pour chaque processus utilisant la dll.) ? Je dis ça juste pour éviter le CreateFile à chaque message logué, qui est certainement pas anodain en matière de temps CPU (Vérification des droits...). Et comme on est dans un hook, autant que ça tourne vite. [ Lien ]
|
|
lundi 4 juin 2007 à 18:17:23 |
Re : Hook et focus

krokro6
|
if(wParam == WM_RBUTTONDOWN) { GetCursorPos(&Mouse); char CoordCX[5]; char CoordCY[4]; sprintf(CoordCX, "%ld", Mouse.x); sprintf(CoordCY, "%ld", Mouse.y); DWORD d; HANDLE hfl = CreateFile("C:\\FichierLog.txt", GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); if(hfl == INVALID_HANDLE_VALUE) MessageBox(NULL, "Impossible de creer un fichier MAP", "Erreur", MB_ICONERROR); SetFilePointer(hfl, 0, 0, FILE_END); WriteFile(hfl, CoordCX, strlen(CoordCX), &d, 0); WriteFile(hfl, CoordCY, strlen(CoordCY), &d, 0); CloseHandle(hfl); } Ce code ne marche pas :(.
|
|
lundi 4 juin 2007 à 18:44:26 |
Re : Hook et focus

krokro6
|
Bon en fait tout marche bien mais le problème c'est que j'obtiens des petits carrés à la place des coordonnées...
if(wParam == WM_RBUTTONDOWN) { GetCursorPos(&Mouse);
char CoordCX[5]; char CoordCY[4];
sprintf(CoordCX, "%ld", Mouse.x); sprintf(CoordCY, "%ld", Mouse.y);
DWORD d; HANDLE hfl = CreateFile("FichierLog.txt", GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); if(hfl == INVALID_HANDLE_VALUE) MessageBox(NULL, "Impossible de creer un fichier MAP", "Erreur", MB_ICONERROR); SetFilePointer(hfl, 0, 0, FILE_END); WriteFile(hfl, CoordCX, strlen(CoordCX), &d, 0);
WriteFile(hfl, CoordCX, 5, &d, 0); CloseHandle(hfl); WriteFile(hfl, CoordCY, 4, &d, 0); CloseHandle(hfl); }
Voila merci de votre aide.
|
|
lundi 4 juin 2007 à 18:48:43 |
Re : Hook et focus

krokro6
|
Arf j'ai mal copié le code, tout ce que vous voyez en double bha n'y faites pas attention.
|
|
lundi 4 juin 2007 à 18:53:32 |
Re : Hook et focus

BruNews
|
1 seul WriteFile, dur dur... char buf[28], *c; c = bnitoa(Mouse.x, buf); *c++ = ' '; // SEPARATEUR c = bnitoa(Mouse.y, c); WriteFile(hfl, buf, c - buf, &d, 0); CloseHandle(hfl); // FINI Tu trouveras bnitoa() ici: http://www.cppfrance.com/code.aspx?ID=36937ciao... BruNews, MVP VC++
|
|
Cette discussion est classée dans : problème, fonction, focus, hook, inithook
Répondre à ce message
Sujets en rapport avec ce message
Instance [ par victorcoasne ]
Bonjour,J'ai un programme avec une dll. Sous dev-c++ en compilant la dll comme du C++ la fonction DllMain n'est pas appellée. Je l'appelle donc avec
problème avec la fonction InternetConnect [ par progrima ]
Salut tout le monde!!! est ce que quelqu'un pourrait m'aider à trouver l'erreur???? l'ouverture de la connexion avec la fonction InternetOpen est bon
Question sur les dll [ par flatou ]
Salut a tous Je me pose une question : soit un programme qui a effectuer un hook sur une fonction de la dll kernel32.dll. Si mon deuxieme programme co
problème avec la fonction pow... [ par othland ]
sltau fait, j'arrive pas à interpreter le résultat de la fonction pow:int pk;float num;double pui;pui=pow(num,pk); quand je met pk=23 et num= 15 par e
Variable pour un hook [ par ChrOnOs83 ]
Bonjour à tous, Il y a un problème sur lequel je bloque depuis déjà plusieurs jours.J'ai créé une dll pour faire un hook clavier. Quand j'appelle la f
ShellExecute() [ par ncoder ]
Bonjour à tous,J'ai un problème où je n'y comprends rien du tout :J'ai fait un hook global, pour savoir qd un certain type de fenètre s'ouvre.Jusque l
Problème avec la fonction OnTimer() sous vc++ [ par Djule01 ]
Bonjour, Je réalise actuellemnent un casse-briques sous visual c++ 6.0 et j'ai un problème concernant la fonction OnTimer(). J'en suis au stade ou j
Problème suppression fichier [ par GIGN90 ]
Bonjour à tous, je suis entrain de développer une application et j'utilise gtkmm pour l'interface graphique.Le souci c'est qu'à un moment je dois supp
problème d'une fonction sur vs.net c++ [ par stgi02 ]
salut, j 'aimerai avoir des explications sur : char t; // je comprends t = (e->get_KeyChar()); // je comprends this->essai->Write((LPCVOID *)&t,sizeof
Problème avec la fonction system() [ par bouba ]
Bonjour, dans un programme de dois lancer d'autres exécutables. J'ai utilisé la fonction system() pour réaliser l'exécution des ces progs. Ca marche m
Livres en rapport
|
Derniers Blogs
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
RE : WIN APIRE : WIN API par racpp
Cliquez pour lire la suite par racpp
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|