Simulation d'un Click sur un WebGadget

Programmation d'applications complexes
Cls
Messages : 620
Inscription : mer. 22/juin/2005 8:51
Localisation : Nantes

Simulation d'un Click sur un WebGadget

Message par Cls »

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 ?
Gillou
Messages : 373
Inscription : sam. 28/août/2004 17:35
Localisation : Bretagne, 22
Contact :

Message par Gillou »

Si tu connais la position aucun problème

Placement de la souris

Code : Tout sélectionner

SetCursorPos_(x, y)
Puis clic

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 :roll:
Cls
Messages : 620
Inscription : mer. 22/juin/2005 8:51
Localisation : Nantes

Message par Cls »

Merci pour ton code Gillou je vais tester ça.

Je crois que SetCursorPos_ positionne la souris par rapport à l'écran. Y'a t - il moyen de la positionner par rapport à ma fenêtre contenant mon WebGadget ? (Je vais faire une petite recherche, il me semble que j'ai déjà vu ça ;))
Gillou
Messages : 373
Inscription : sam. 28/août/2004 17:35
Localisation : Bretagne, 22
Contact :

Message par Gillou »

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
Cls
Messages : 620
Inscription : mer. 22/juin/2005 8:51
Localisation : Nantes

Message par Cls »

Merci Gillou, je vais voir ce que je vais pouvoir faire avec ça !
Répondre