cs_NoMitsu
Messages postés122Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention15 février 2011
-
13 avril 2004 à 00:45
jordangj
Messages postés63Date d'inscriptionlundi 12 juillet 2004StatutMembreDernière intervention 8 mai 2007
-
15 sept. 2004 à 21:51
Bon soir a tous,
j'ai besoin d'aide (je maudit les hook j'arrive pas a les faire marcher:(
Enfin j'aimerais faire un hook sur une fenetre externe a mon prog (genre notepad) pour pouvroir rajouter des menu et savoir lorsque l'on click dessu (normal) donc j'ai pondu se code qui marche pas vraiment et je vois vraiment pas pourquoi alors si qq1 a une idee qu'il n'esite pas a me le faire savoir !!!
Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long
Private Declare Function FindWindow& Lib "user32" Alias "FindWindowA" (ByVal lpClassName$, ByVal lpWindowName$)
Dim ThreadID As Long
Dim ProcessId As Long
Dim vHwnd As Long
Public Sub IniHook()
vHwnd = FindWindow("notepad", vbNullString)
ThreadID = GetWindowThreadProcessId(vHwnd, ProcessId)
hHook = SetWindowsHookEx(WH_GETMESSAGE, AddressOf GetMsgProc, App.hInstance, ThreadID)
End Sub
Public Function GetMsgProc(ByVal nCode As Long, ByVal wParam As Long, lParam As MSG) As Long
Debug.Print lParam.message
GetMsgProc = CallNextHookEx(hHook, nCode, wParam, lParam)
End Function
alors avec se code des que notepad a le focus il plante !!
cs_NoMitsu
Messages postés122Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention15 février 2011 13 avril 2004 à 01:14
ah !! bon sa casse toute mes embition snif !
je supose que les dll activeX ne sufise pas .....
si tu pouvais me donner plus de detail du pourquoi et du comment sa serais simpa.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 13 avril 2004 à 01:36
Tu peux aller voir mes sources sur cppfrance, j'en ai fait tout un tas de hooks.
Une dll vb est un composant COM, il faut du code natif avec un point d'entree, c'est la que le systeme appelle la routine de hook quand necessaire.
cs_NoMitsu
Messages postés122Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention15 février 2011 13 avril 2004 à 12:14
oki d'ac, juste une autre petit question, comment sa se fait que l'on puisse faire un hook sur notre propre application avec le meme code !!! et la sa plante pas !
Vous n’avez pas trouvé la réponse que vous recherchez ?
ShareVB
Messages postés2676Date d'inscriptionvendredi 28 juin 2002StatutMembreDernière intervention13 janvier 201626 15 avril 2004 à 20:53
salut
désolé de vous contredire mais on peut très bien faire un hook global avec VB, tout comme on peut faire une dll normal, mettre de l'asm, faire une appli MS-DOS... il faut trafiquer à la compilation les appels à C2.EXE et LINK.EXE
C2 est le compilateur VB
LINK est le même que celui dans Visual C++ (donc avec les mêmes commandes)
il existe un complément pour VB pour pouvoir changer des choses à la compilation : on peut le trouver à http://johnchamberlain.com/vbcode.html (par John Chamberlain)...
de plus, il faut utiliser l'api CoInitialize pour pouvoir permettre au code de vb d'être utilisé par une autre application non VB. Cette démarche est très bien expliquée dans le livre Advanced Visual Basic de M. Curland
enfin je dirais que ceci est de la programmation VB ultra avancée...
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 15 avril 2004 à 21:06
Je dirais surtout que c'est perdre du temps inutilement.
Quand on veut avancer dans la prog faut bien passer au C un jour ou l'autre, le plus tot etant le mieux.
ShareVB
Messages postés2676Date d'inscriptionvendredi 28 juin 2002StatutMembreDernière intervention13 janvier 201626 15 avril 2004 à 21:48
salut
tout à fait d'accord : rien ne vaut le C. Mais bon, le VB très avancé c'est pas mal non plus : faire des choses que l'on ne peut normalement pas faire et aussi voir le code asm que VB génére...ca vaut quand meme le coup