Button in einem Fenster klicken

  • jo klar mach ich doch

    also hier das Script dort wo er stehen bleibt hau ich nen gut sichtbares Kommentar rein :)

    Spoiler anzeigen
    [autoit]



    Opt("MouseCoordMode", 0) ;1=absolut zum Bildschirm, 0=relativ zum Fenster
    Opt("WinTitleMatchMode", 4)
    AdlibEnable("check", 250)
    ; Starte True Image-Setup
    Run("setup.exe")
    $Title = "Acronis True Image Server"
    $RegKey = "(hier steht mein key)"


    ; auf das Program warten
    ; Startbildschirm
    WinWaitActive("Acronis True Image Server Setup", "")
    MouseClick("left", 440, 245)

    ; Welcome-Screen
    While 1

    If WinActive("AcronisTrueImageServer") Then;------------------------------------ ( hier steht er ohne den Sleeptimer)
    MsgBox(64, "Info", "das Fenster ist aktiv!", 3)
    ControlClick("AcronisTrueImageServer", "", 1468, "left", 1)
    EndIf

    Sleep(100);-----------------------(hier steht er mit Sleeptimer)
    WEnd

    ; Lizenzvertrag
    WinWaitActive($Title, "Lizenzvereinbarung")
    ControlClick($Title, "", "Button3")
    ControlClick($Title, "", "Button5")

    ; Seriennummer
    WinWaitActive($Title, "Geben Sie die Seriennummer")
    Send($RegKey)
    WinWaitActive("VM-Wait", "", 2)
    ControlClick($Title, "", "Button5")

    ; Setup-Typ, Komplett
    WinWaitActive($Title, "Setup-Typ")
    ControlClick($Title, "", "Button3")

    ; Ja, für alle Benutzer
    WinWaitActive($Title, "Administrator-Optionen wählen")
    ControlClick($Title, "", "Button4")
    ControlClick($Title, "", "Button1")

    ; Setup-Zusammenfassung
    WinWaitActive($Title, "Setup hat genügend Informationen")
    ControlClick($Title, "", "Button1")

    ; Installation fertig
    WinWaitActive($Title, "Installation komplett")
    ControlClick($Title, "", "Button1")

    ; Neustart?
    WinWaitActive("Bestätigung", "")
    MouseClick("left", 280, 135)

    ; Startup-Screen beenden
    WinWaitActive("Acronis True Image Server Setup", "")
    MouseClick("left", 45, 460)

    Func check()
    ToolTip(WinGetTitle("active"), 0, 0)
    EndFunc ;==>check

    [/autoit]
  • Guten Morgen,
    also habe das eben mit dem WinExists versucht, falls ich es richtig eingebaut habe.

    So wie ichs hab überspringt er das einfach ohne meldung.

    Spoiler anzeigen
    [autoit]


    ; Wait for program become active
    ; Startup-Screen
    WinWaitActive("Acronis True Image Server Setup", "")
    MouseClick ( "", 440, 245 )

    ; Welcome-Screen

    [/autoit] [autoit][/autoit] [autoit]

    If WinExists("AcronisTrueImageServer") Then
    MsgBox(0, "", "Window exists")
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ;While 1
    ;
    ; If WinActive("AcronisTrueImageServer") Then
    ; MsgBox(64, "Info", "das Fenster ist aktiv!", 3)
    ; ControlClick("AcronisTrueImageServer", "", 1468, "left", 1)
    ; EndIf
    ;
    ;
    ;WEnd

    ; Lizenzvertrag
    WinWaitActive($Title, "Lizenzvereinbarung")
    ControlClick($Title, "", "Button3")
    ControlClick($Title, "", "Button5")

    [/autoit] [autoit][/autoit] [autoit][/autoit]

    Das Script wartet dann auf das nächste Fenster was kommen würde.

    Wollte mich mal für die bisherige Hilfe und Gedult mit mir bedanken ;)


    EDIT: juhu ein kleiner Fortschritt.

    Spoiler anzeigen
    [autoit]


    ; Welcome-Screen
    While 1

    If WinActive("Acronis True Image Server") Then
    MsgBox(64, "Info", "das Fenster ist aktiv!", 3)
    ControlClick("Acronis True Image Server", "", 1468, "left", 1)
    EndIf


    WEnd

    [/autoit]

    das funzt jez, nun erscheint ein kleines Fenster wie da angefordert und schließt dann auch fein.
    Hängt dann aber in der Zeile "If WinActive(("Acronis True Image Server") Then"
    und macht da dann halt nicht weiter. Bin ich blöd oder stell ich mich nur reichlich dumm an? :hammer:

    Einmal editiert, zuletzt von Praktikant (3. Januar 2007 um 11:22)

    • Offizieller Beitrag

    Überall, wo du danach ControlClick machst, kannst du statt WinWaitActive WinExists machen. Damit umgehst du die Problematik, dass manche Fenster von sich aus nie aktiv werden.

    Wenn du danach Send oder MouseClick hast, hilfe folgendes Konstrukt:

    [autoit]


    WinExists(...)
    WinActivate(...)
    WinWaitActive(...)

    [/autoit]


    - hoffentlich zumindest ;)

    Viel Erfolg beim Testen,
    peethebee

  • so wieder rum getüftelt *g*

    Hab es soweit das es den anschein hat er würde klicken. Weil wenn ich manuell mit der Maus über den Button fahre "kippt" der so nach unten.
    Das der Button so nach unten geht bedeutet ja das die maus da ist.

    Spoiler anzeigen
    [autoit]


    WinWaitActive("Acronis True Image Server Setup", "")
    MouseClick ( "", 440, 245 )

    ; Welcome-Screen
    ;While 1

    ;If WinActive("Acronis True Image Server") Then
    ; MsgBox(64, "Info", "das Fenster ist aktiv!", 3)
    ; ControlClick("Acronis True Image Server", "", 1468, "left", 1)
    ;EndIf


    ;WEnd
    ; Welcome-Screen
    WinExists($Title, "Dieser Assistent führt sie durch die Installationprozedur")
    WinActive($Title, "Dieser Assistent führt Sie durch die Installationsprozedur")
    WinWaitActive($Title, "Dieser Assistent führt Sie durch die Installationsprozedur")
    MouseClick ($Title, 340, 380, 5 )
    ;ControlClick ($Title , "" , "Button1", 5 )

    ; Lizenzvertrag
    WinWaitActive($Title, "Lizenzvereinbarung")
    ControlClick($Title, "", "Button3")
    ControlClick($Title, "", "Button5")

    [/autoit]


    EDIT: okay er klickt endlich :D scheinbar jedenfall, nun übergeht er aber das nächste Fenster einfach und geht zum übernächsten. Nunja werde mal rumprobieren und euch hier nicht so auf die Nerven gehen :rofl:

    Danke für die bisherige Hilfe

    EDIT2: So ganzen Tag dran rum gebastelt es läuft nun zu 99% durch, aber halt nicht zu 100 :( das aller erste Fenster lässt sich am Ende nicht schließen.
    Glaub werd bescheuert, das frustet langsam :weinen:

    Spoiler anzeigen
    [autoit]


    ; Startup-Screen
    WinWaitActive("Acronis True Image Server Setup", "")
    MouseClick ( "", 440, 245 )

    [/autoit]

    Das obige ist das erste Fenster was wunderbar funzt.

    Spoiler anzeigen
    [autoit]


    ;Start-Up Screen beenden
    WinWaitActive("Acronis True Image Server Setup", "")
    MouseClick ( "", 45, 245 )

    [/autoit] [autoit][/autoit] [autoit]

    ;Alternativ hab ich das auch mal so probiert
    ; Startup-Screen beenden
    ;WinExists("Acronis True Image Server Setup")
    ;WinActive("Acronis True Image Server Setup")
    ;WinWaitActive("Acronis True Image Server Setup")
    ;MouseClick("", 45, 460)

    [/autoit]

    3 Mal editiert, zuletzt von Praktikant (4. Januar 2007 um 16:51)

    • Offizieller Beitrag

    Hallo!

    Das ist doch mal was :)
    Hast du das (Button in einem Fenster klicken) schon mal versucht?
    Evtl. kannst du das Fenster auch mit WinClose oder WinKill schließen, was etwas rabiater ist. Wenn die Installation schon fertig ist, könnte man als letzten Ausweg auch ProcessClose machen.

    peethebee

  • Morgähn :),

    jop das in dem Link habe ich schon versucht.
    Selbst das ProzessClose fuinzt nicht, habe das folgendermaßen ans ende des Scripts angefügt

    [autoit]


    ProcessClose("setup.exe")

    [/autoit]

    hab vorher im Taskmanager geschaut welcher prozess das ist, habe 3 fälschlicher weise erst gekillt bis ich die gefunden hatte :D
    Aber das muss der richtige Prozess sin.

    Script durchlaufen lassen und siehe da.... das doofe fenster ist immernoch da -.-
    Wenn ich den Prozess manuell kill isser wech.

    Ideen? oder Fehler die ich mach :)

    • Offizieller Beitrag

    Hi!

    Machs mal wie in der Hilfe, es könnte ja mehrere setup.exe-Prozesse geben:


    $PID = Run("notepad.exe") ; Will return the PID

    [...]

    If $PID Then
    ProcessClose($PID)
    ProcessWaitClose($PID)
    ToolTip("Prozess sollte gekillt sein...")
    Else
    ToolTIp("Prozess existiert scheinbar nicht...")
    EndIf


    peethebee

  • Hi hi nach etwas längerer Abstinenz,

    das mit dem letzten Fenster ist sehr kurios.
    Bekomme das dämliche Teil nicht automatisch zu.
    Es ist definitiv diese "setup.exe". Gibt auch keine weitere
    da hab ich auch schon nachgeforscht.

    Könnte es funktionieren, das wenn man einfach sagt drücke "Alt+F4",
    das das mit glück das Fenster schließt?

  • Tach nochmal,

    also es läuft ich habs geschafft. Aber ich habe keinen blassen Schimmer
    warum das nun läuft. Es läuft und das reicht mir fürs Erste *g*