Mr. T

  • Ich abs so gemacht geht viel einfacher!

    run ("wrar361d.exe")
    WinWaitActive("WinRAR Deutsche Version 3.61")
    ControlClick("WinRAR Deutsche Version 3.61", "Installieren >", "Button3")
    WinWaitActive("WinRAR Setup")
    ControlClick("WinRAR Setup", "OK", "Button1")
    WinWaitActive("WinRAR Setup")
    ControlClick("WinRAR Setup", "Fertig", "Button2")
    WinWaitActive("WinRAR")
    run("C:\Programme\WinRAR\WinRAR.exe")
    WinWaitActive("Bitte kaufen Sie eine WinRAR-Lizenz")
    ControlClick("Bitte kaufen Sie eine WinRAR-Lizenz", "Schließen", "Button3")
    WinWaitActive("WinRAR")
    WinClose("WinRAR")

    Muss man halt bei ner anderen Version dan wieder ändern!

    Zum Eintrag in der Datenbank

  • Hallo!

    Erstens, so viele Control Clicks könen mal im nirvana landen, wenn die 2e angabe nicht korrekt ist - deswegen ist das sehr gefährlich:

    ControlClick("WinRAR Setup", "OK", "Button1")
    WinWaitActive("WinRAR Setup")
    ControlClick("WinRAR Setup", "Fertig", "Button2")
    WinWaitActive("WinRAR")

    Du klickst OK, es wird installiert.

    DOCH DANN: du wartest bis das fenster aktiv ist - das ist es vll die ganze zeit?
    Vielleicht geht es auch so, aber ich würde noch ein 2es Parameter angeben, zb

    WinWaitActive("WinRar Setup", "Abgeschlossen") oder wie auch immer das heißt...


    AUSSERDEM:


    du musst erst freigeschaltet werden für die Datenbank^^

    Du hast dein Script in peethebees Datenbank gegeben - wo er es wahrscheinlich löschen wird :lol:


    Ich zeig dir - zum vergleich - ein paar andere Installationen für andere Programme..

    eine extrem sichere Version ist zb die Von Drako für Teamspeak:

    Spoiler anzeigen

    BlockInput(1)

    Run("ts2_client_rc2_2032.exe")

    WinWait("Setup","This will install Teamspeak 2 RC2. Do you wish to continue?")
    If Not WinActive("Setup","This will install Teamspeak 2 RC2. Do you wish to continue?") Then WinActivate("Setup","This will install Teamspeak 2 RC2. Do you wish to continue?")
    WinWaitActive("Setup","This will install Teamspeak 2 RC2. Do you wish to continue?")
    Send("!j")

    WinWait("Setup - Teamspeak 2 RC2","Welcome")
    If Not WinActive("Setup - Teamspeak 2 RC2","Welcome") Then WinActivate("Setup - Teamspeak 2 RC2","Welcome")
    WinWaitActive("Setup - Teamspeak 2 RC2","Welcome")
    Send("!n")

    WinWait("Setup - Teamspeak 2 RC2","License")
    If Not WinActive("Setup - Teamspeak 2 RC2","License") Then WinActivate("Setup - Teamspeak 2 RC2","License")
    WinWaitActive("Setup - Teamspeak 2 RC2","License")
    ControlClick("Setup - Teamspeak 2 RC2" , "I &accept the agreement" , "TRadioButton2")
    Send("!n")

    WinWait("Setup - Teamspeak 2 RC2","SelectDir")
    If Not WinActive("Setup - Teamspeak 2 RC2","SelectDir") Then WinActivate("Setup - Teamspeak 2 RC2","SelectDir")
    WinWaitActive("Setup - Teamspeak 2 RC2","SelectDir")
    Send("!n")

    WinWait("Setup - Teamspeak 2 RC2","SelectProgramGroup")
    If Not WinActive("Setup - Teamspeak 2 RC2","SelectProgramGroup") Then WinActivate("Setup - Teamspeak 2 RC2","SelectProgramGroup")
    WinWaitActive("Setup - Teamspeak 2 RC2","SelectProgramGroup")
    Send("!n")

    WinWait("Setup - Teamspeak 2 RC2","Create a &desktop icon")
    If Not WinActive("Setup - Teamspeak 2 RC2","Create a &desktop icon") Then WinActivate("Setup - Teamspeak 2 RC2","Create a &desktop icon")
    WinWaitActive("Setup - Teamspeak 2 RC2","Create a &desktop icon")
    Send("!n")

    WinWait("Setup - Teamspeak 2 RC2","&Install")
    If Not WinActive("Setup - Teamspeak 2 RC2","&Install") Then WinActivate("Setup - Teamspeak 2 RC2","&Install")
    WinWaitActive("Setup - Teamspeak 2 RC2","&Install")
    Send("!i")

    WinWait("TeamSpeak Codec Installer","page1")
    If Not WinActive("TeamSpeak Codec Installer","page1") Then WinActivate("TeamSpeak Codec Installer","page1")
    WinWaitActive("TeamSpeak Codec Installer","page1")
    Send("{ENTER}")

    WinWait("TeamSpeak Codec Installer","Page2")
    If Not WinActive("TeamSpeak Codec Installer","Page2") Then WinActivate("TeamSpeak Codec Installer","Page2")
    WinWaitActive("TeamSpeak Codec Installer","Page2")
    Send("{ENTER}")

    WinWait("TeamSpeak Codec Installer","page3")
    If Not WinActive("TeamSpeak Codec Installer","page3") Then WinActivate("TeamSpeak Codec Installer","page3")
    WinWaitActive("TeamSpeak Codec Installer","page3")
    Send("{TAB}{ENTER}")

    WinWait("Setup - Teamspeak 2 RC2","InfoAfter")
    If Not WinActive("Setup - Teamspeak 2 RC2","InfoAfter") Then WinActivate("Setup - Teamspeak 2 RC2","InfoAfter")
    WinWaitActive("Setup - Teamspeak 2 RC2","InfoAfter")
    Send("!n")

    WinWait("Setup - Teamspeak 2 RC2","Finished")
    If Not WinActive("Setup - Teamspeak 2 RC2","Finished") Then WinActivate("Setup - Teamspeak 2 RC2","Finished")
    WinWaitActive("Setup - Teamspeak 2 RC2","Finished")
    ControlClick("Setup - Teamspeak 2 RC2" , "Launch Teamspeak" , "TCheckBox1")
    Sleep (0500)
    Send("!f")


    Wie du siehst, er macht IMMER die abfrage ob das fenster aktiv ist - wenn ja, gehts weiter und er klickt, wenn nein, aktiviert er es und klickt.

    Obwohl er am punkt danach ein WinWait hat, macht er ein ganz kurzes sleep!

    Eigentlich ein Musterbeispiel :)


    Meins dagegen - auch für teamspeak:


    Spoiler anzeigen

    Run("ts2_client_rc2_2032.exe")

    WinWaitActive("Setup")
    send("!j")
    sleep(500)
    send("!n")
    sleep(500)
    send("!a")
    sleep(500)
    send("!n")
    sleep(500)
    send("!n")
    sleep(500)
    send("!n")
    sleep(500)
    send("!n")
    sleep(500)
    send("!i")
    WinWaitActive("TeamSpeak Codec Installer")
    send("{Enter}")
    sleep(500)
    send("{Enter}")
    MouseClick("left", 774, 477)
    WinActivate("Setup - Teamspeak 2 RC2")
    send("!n")
    send("{Enter}")


    Zu meiner verteidigung - das war zu meiner Autoit anfangszeit ;)

    Ich hab es hier zeimlich blöd gelöst duch viele sleeps, und ich hab einfach tastatursimulationen durchgeführt, was verdammt unsicher ist..

    das ist eigentlich auch ein Musterbeispiel..

    wie man es NICHT macht :schild4:


    Vll solltest du ein paar mehr sleeps einbauen, ansonsten ist es ganz hübsch


    Grüße,

    huggy

  • wobei das abfragen ob das fenster active ist, doch hier eigentlich unnötig ist. (TS script)
    es macht gar nichts, wenn man es immer direkt mit "WinActivate" anspricht :)

    spart zeit und byte :rofl:

    PS: bei controlclick muss das fenster auserdem nicht unbedingt Active sein.

    Doktore

    Einmal editiert, zuletzt von Dr.Galvany (15. November 2006 um 22:43)