cs_sylvain230
Messages postés67Date d'inscriptionmardi 5 décembre 2000StatutMembreDernière intervention 5 juillet 2010
-
24 avril 2008 à 09:03
cs_sylvain230
Messages postés67Date d'inscriptionmardi 5 décembre 2000StatutMembreDernière intervention 5 juillet 2010
-
28 avril 2008 à 10:03
Bonjour je suis débutant en vb.net et je n'arrive pas à avoir le handle de Word pour effectuer un hook.
Je fais Word_hwnd = FindWindow(vbNullString, "Microsoft Word")
dans cette page de doc MSDN, on voit par exemple :
WH_MOUSE_LL
Windows NT/2000/XP: Installs a hook procedure that monitors low-level mouse input events. For more information, see the LowLevelMouseProc hook procedure.
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202171 24 avril 2008 à 15:02
"Declared in Winuser.h, include Windows.h"
faut aller voir dans ces fichiers (ou leurs dépendances)
Private Const WH_CALLWNDPROC As Long = 4
Private Const WH_CALLWNDPROCRET As Long = 12
Private Const WH_CBT As Long = 5
Private Const WH_DEBUG As Long = 9
Private Const WH_FOREGROUNDIDLE As Long = 11
Private Const WH_GETMESSAGE As Long = 3
Private Const WH_HARDWARE As Long = 8
Private Const WH_JOURNALPLAYBACK As Long = 1
Private Const WH_JOURNALRECORD As Long = 0
Private Const WH_KEYBOARD As Long = 2
Private Const WH_KEYBOARD_LL As Long = 13
Private Const WH_MOUSE As Long = 7
Private Const WH_MOUSE_LL As Long = 14
Private Const WH_MSGFILTER As Long = -1
Private Const WH_SHELL As Long = 10
Private Const WH_SYSMSGFILTER As Long = 6
cs_sylvain230
Messages postés67Date d'inscriptionmardi 5 décembre 2000StatutMembreDernière intervention 5 juillet 2010 24 avril 2008 à 15:19
En gros mon probléme c'est pourquoi ces 3 lignes
_mouseProc = New CallBack(AddressOf MouseHookProc)
Word_hwnd = FindWindow("OpusApp", vbNullString)
_mouseHook = SetWindowsHookExW(WH_MOUSE_LL, _mouseProc, GetModuleHandleW(IntPtr.Zero), 0)
ne marchent pas ?
Enfin si je met juste ca _mouseHook = SetWindowsHookExW(WH_MOUSE_LL, _mouseProc, GetModuleHandleW(IntPtr.Zero), 0)
ca fonctionne mais juste pour tout l'écran
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202171 24 avril 2008 à 15:27
pas de Hook WH_MOUSE_LL local...
The scope of a hook depends on the hook type. Some hooks can be set only with global scope; others can also be set for only a specific thread, as shown in the following table.
Hook Scope
WH_CALLWNDPROC Thread or global
WH_CALLWNDPROCRET Thread or global
WH_CBT Thread or global
WH_DEBUG Thread or global
WH_FOREGROUNDIDLE Thread or global
WH_GETMESSAGE Thread or global
WH_JOURNALPLAYBACK Global only
WH_JOURNALRECORD Global only
WH_KEYBOARD Thread or global
WH_KEYBOARD_LL Global only
WH_MOUSE Thread or global
WH_MOUSE_LL Global only <<<<<<<<<<<<<
WH_MSGFILTER Thread or global
WH_SHELL Thread or global
WH_SYSMSGFILTER Global only
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202171 24 avril 2008 à 16:43
Return Value
If the function fails, the return value is NULL. To get extended error information, call GetLastError.
sinon, j'en pense que tu fais tout et n'importe quoi...
lis cette fichue doc !
ici, tu ne pourras hooker qu'un thread créé par ton process. Pour faire un hook d'un thread créé par un autre process, il te faut utiliser une dll....
"If the dwThreadId parameter is zero or specifies the identifier of a thread created by a different process, the lpfn parameter must point to a hook procedure in a DLL."
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202171 24 avril 2008 à 16:44
en résumé: si tu souhaite espionner le thread qui gère la fenêtre Word dont tu as toruvé le Handle, il te faut une dll.
en effet, le code a besoin d'etre injecté dans le process Word, et ca n'est possible (facilement) qu'avec une dll...
cs_sylvain230
Messages postés67Date d'inscriptionmardi 5 décembre 2000StatutMembreDernière intervention 5 juillet 2010 25 avril 2008 à 11:19
Salut
maintenant j'ai un autre problème
Mon hook marche :) et oui lol mais y marche que sur mon appli en fait
Donc je pense qu'il faut que je récupère l'id de Word en cours mais ca j'ai pas réussi :S
T'aurais pas une idée ?
cs_sylvain230
Messages postés67Date d'inscriptionmardi 5 décembre 2000StatutMembreDernière intervention 5 juillet 2010 25 avril 2008 à 11:42
J'ai récupéré l'id de word et quand je passe la souris sur la fenêtre word ca me dit
Windows word a rencontré un probléme et doit être fermé ...
Je vois pas de quoi ca peut venir ...