Bonjour à tous,
J'ai un souci avec le WebGadget. J'utilise le très bon code de Fr34k and Zapman : WG library (disponible ici : http://www.purebasic.fr/english/viewtop ... gadgetexec).
J'aimerais simuler un click sur un bouton dans le WebGadget afin d'envoyer les données d'un formulaire. Pensez - vous que cela soit possible ?
Simulation d'un Click sur un WebGadget
Si tu connais la position aucun problème
Placement de la souris
Puis clic
Si tu ne connais pas la position, parser le code, mais la autant réinventé un navigateur ou pourquoi pas par reconnaissance graphique de l'emplacement. Bref, la ça deviendrai chaud, j'espère que tu peux utiliser la première soluce
Ou encore, tu peux peut-être récupérer le lien du bouton puis via injection de js récupérer les valeurs et enfin générer le lien de la nouvelle page. Tout dépend du type de formulaire
Placement de la souris
Code : Tout sélectionner
SetCursorPos_(x, y)
Code : Tout sélectionner
ProcedureDLL MouseClick(Parameter) ; Simule une action sur les boutons de la souris (EX : MouseClick(#MOUSEEVENTF_RIGHTDOWN) : mouseclick(#MOUSEEVENTF_RIGHTUP))
Mem.l = GlobalAlloc_(0, 8)
GetCursorPos_(Mem)
re = mouse_event_(Parameter | #MOUSEEVENTF_ABSOLUTE, PeekL(Mem) * ($FFFF / GetSystemMetrics_(0)), PeekL(Mem + 4) * ($FFFF / GetSystemMetrics_(1)), 0, GetMessageExtraInfo_())
GlobalFree_(Mem)
ProcedureReturn re
EndProcedure
Si tu ne connais pas la position, parser le code, mais la autant réinventé un navigateur ou pourquoi pas par reconnaissance graphique de l'emplacement. Bref, la ça deviendrai chaud, j'espère que tu peux utiliser la première soluce

Ou encore, tu peux peut-être récupérer le lien du bouton puis via injection de js récupérer les valeurs et enfin générer le lien de la nouvelle page. Tout dépend du type de formulaire

Plusieurs méthodes existent pour récup la position d'un gadget, en voici une
Code : Tout sélectionner
p.point
If OpenWindow(0, 0, 0, 300, 200, "", #PB_Window_SystemMenu) And CreateGadgetList(WindowID(0))
ButtonGadget(0, 20, 20, 100, 30, "test")
TextGadget(1, 20, 50, 200, 20, "")
Repeat
Select WaitWindowEvent()
Case #WM_MOVE
p\x=0 : p\y=0 ; Reinitialisation
ClientToScreen_(GadgetID(0), @p)
SetWindowTitle(0, "Position du bouton : "+Str(p\x)+" : "+Str(p\y))
Case #WM_MOUSEMOVE
GetCursorPos_(@p)
SetGadgetText(1, "Position de la souris : "+Str(p\x)+" : "+Str(p\y))
Case #PB_Event_CloseWindow
quit=1
EndSelect
Until quit=1
EndIf