Connaitre tous les évènements de windows

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

J'ai posté plusieurs exemples de hook, tu peux jeter un oeil!
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Et puis, si tu veux qu'un hook soit global il faut l'appeler depuis une Dll et non depuis ton prog!
olivier
Messages : 305
Inscription : mer. 05/janv./2005 12:58
Localisation : http://www.tib-net.com/meca/index.htm

Message par olivier »

Merci Nico

Sur le coup je me suis dit SUPER, je n'avais pas essayé cela et ça devrait marché.....mais je n'y arrive pas. Je récupère bien mon message pour les clic dans ma fenetre, mais dés que j'en sort cela déconne...

Si tu as un peu de temps j'aimerais bien savoir où est mon érreur, sinon j'ai trouvé un moyen pour contourné en faisant des PostMessage_.

Bonne journée à tous

HookDll.dll

Code : Tout sélectionner

Global adresse_message,hmyHookMouse

ProcedureDLL HookMouse(code.l, wParam.l, lParam.l)
   
   *mymsg.MOUSEHOOKSTRUCT = lParam 
   *position.POINT=*mymsg\pt; MSG structure holds info

   Select wParam
      Case #WM_LBUTTONUP
         action$= "Clic G UP"
      Case #WM_LBUTTONDOWN
         action$= "Clic G Down"
      Case #WM_RBUTTONUP
         action$= "Clic D UP"
      Case #WM_RBUTTONDOWN
         action$= "Clic D Down"
      Default 
         action$=""
   EndSelect
   If action$<>""
      action$=LSet(action$,20)+LSet(Str(*position\x),10)+LSet(Str(*position\y),10)
      ;SetClipboardText(action$)
      PokeS(adresse_message,action$)
    
   EndIf
   
   ProcedureReturn CallNextHookEx_(@HookMouse(), code, wParam, lParam)
EndProcedure

ProcedureDLL StartHook(hDLL,ptr_Message)
   adresse_message=ptr_Message
   hmyHookMouse = SetWindowsHookEx_(#WH_MOUSE	, @HookMouse(), hDLL, 0)

EndProcedure

ProcedureDLL StopHook()
   
   UnhookWindowsHookEx_(hmyHookMouse)
   
EndProcedure
prog

Code : Tout sélectionner

OpenWindow(0, 0, 0, 550, 160,"RecupEvent",  #PB_Window_SystemMenu)
StickyWindow(0,1)
hDLL = OpenLibrary(0, "HookDll.dll")

Message.s="TEST                                               "

hmyHookMouse=CallFunction(0, "StartHook", hDLL,@Message)

Repeat
   Event=WindowEvent()
   Delay(10)
   mess$=Message;GetClipboardText()
   If der_mess$<>mess$
      SetWindowTitle(0,mess$)
      der_mess$=mess$
   EndIf
   
Until Event=#wm_close


CallFunction(0, "StopHook")
CloseLibrary(0)

End
Vive le temps libre !
Répondre