programm schliesst sich nicht nach auto install

  • hi.

    ich bin blutiger anfänger.

    bin da seid heute mittag bei. habe auch schon ein kleines test script geschrieben.soweit funktioniert es auch super.

    nur leider schliesst es das letzte fenster nicht nachdem es auf dem finish button geklickt hat. wenn ich es von hand mache geht es.

    hier mein code:

    was muß ich da noch eingeben damit auch wirklich der finish button geklickt wird damit sich das installationsfenster schliesst?

    [Blockierte Grafik: http://www.multiwelt.eu/frank/picuploader/bild.php/3094,image154XYDMI.jpg]

    ich bitte um eure hilfe

  • Hallo Frank-Bremen,

    herzlich willkommen im Forum und viel Spass mit AutoIt.

    Hier kannst du dir die deutsche Hilfe herunterladen.
    Hier gibt es ein AutoIt-Tutorial: http://wiki.autoit.de/wiki/index.php/TutorialSehr hilfreich ist auch das Buch von peethebee

    und jetzt zu deiner Frage, eigentlich sieht alles in Ordnung aus, evtl. solltest du es so machen:

    [autoit]

    winwait ("7-Zip 9.20 (x64 edition) Setup", "&Finish")
    ControlClick ("7-Zip 9.20 (x64 edition) Setup", "&Finish", "Button1")

    [/autoit]

    mfg autoBert

  • ja perfekt. so eine kleinigkeit und schon geht es löööl. echt der hammer

    vielen dank für die schnelle hilfe.

    dann kann ich mich jetzt ja mal an ein neues programm rann wagen. hehe

    gruß Frank

  • [autoit]

    winwait ("7-Zip", "&Finish")
    ControlClick ("7-Zip", "&Finish", "Button1")

    [/autoit]

    Nimm mal die RegWrite Zeilen raus. Die waren nur als "notbehelf" drin. Nicht bei jedem Script mit einbetten. Es sei denn du willst überall DEP lahmlegen. Leider haben die meisten auf dem Rechner UAC und so n Kram an. Schwierig da Autoinstaller einzubetten. Aus diesem Grund hab ich noch kein WPI für Win7.

    Und nicht die Texte der Schaltflächen nehmen. Das wird dir irgendwann zum Verhängnis werden und bekommst eine Schleife. Denn "&Finish" ist kein unique Window Text. ;)

    Also machen wirs so;

    [autoit]

    winwait ("7-Zip", "Completing")
    ControlClick ("7-Zip", "Completing", "Button1")

    [/autoit]

    "Completing" ist ein unique Window Text bei dem Installer.;)

    Willkommen übrigens im Forum.

    mfg

    Einmal editiert, zuletzt von Sentionline (16. April 2011 um 14:58)

  • was soll ich denn statt des button namens nehemn? die ID? im oberen besispiel wäre es dann die 314

    gruß

  • Ganz unten ist der Abschnitt "Visible Text". Von dort kannst du dir was aussuchen, was AutoIt als Text erkennt. Jede Seite einer Installation hat ein Uniqe Text. Beispielsweise fangen die meisten Installationen mit "Willkommen" an, dann kommt "Lizenzvereinbarung" und dann irgendwann "Ziel". Am Ende wie am Beispiel 7Zip "Completing" oder manchmal "Finish". ;)

    Versuch mal Texte wie:

    [autoit]

    winwait ("7-Zip 9.20 (x64 edition) Setup")
    ControlClick ("7-Zip 9.20 (x64 edition) Setup", "I &accept the terms in the License Agreement", "Button1")

    [/autoit]


    abzukürzen. Liesst sich ja schrecklich;

    [autoit]


    ;hier drunter ist beispielsweise gar kein Text definiert
    winwait ("7-Zip", "Agreement")
    ControlClick ("7-Zip", "Agreement", "Button1")

    [/autoit]

    Ganz wichtig sich zu merken;

    [autoit]

    WinWait ("Hier kommt der Fenstertitel rein, das kann sich auch wiederholen", "Unique Text")
    ControlClick ("Hier kommt der Fenstertitel rein, das kann sich auch wiederholen", "Unique Text", "ButtonXY")

    [/autoit]


    mfg

    Einmal editiert, zuletzt von Sentionline (16. April 2011 um 15:19)

  • ok. werde ich ausprobieren.

    kürzer ist immer gut. nur in dem tut stand drinnen das man den fenstertitel nehmen soll bei allem. daher habe ich es so gelernt.

  • Fenstertitel ja, die ändert sich ja nicht während der Installation. Die Texte aber...man klickt weiter und schon ändert sich der Text "im Fenster", weil man ja auf Weiter geklickt hat ;)

  • hm. jetzt bin ich durcheinander.

    welche daten soll ich zb bei diesem besispiel nehmen?

    normalerweise würde ich es so machen:

    Code
    winwait ("AutoPlay", "Installieren")
    ControlClick ("AutoPlay", "Installieren", "Button2")

    und was mir jetzt nur einfällt, leut deiner erklärung, soll ich das so machen?:

    Code
    winwait ("AutoPlay", "Installieren")
    ControlClick ("AutoPlay", "Installieren", "Installieren")

    das autoplay aus dem titel
    das erste installieren vom feld:Control - Text
    und das 2. installieren vom feld: Visible Text -

    oder habe ich wieder was flasch verstanden?

    aber warum das besser sein soll den buttonname nicht zu nehmen, habe ich nicht verstanden. eil pro fenster gibt es doch nur jeden button, 1 mal.

  • Weil beispielsweise "&weiter" in jedem Fenster sein kann. Was ist denn wenn du willst das AutoIt nicht weitermachen soll, wenn sich am Fenstertext was ändert? Beispielsweise würdest du Bing-Bar und so ein scheiss mit installieren, wenn du AutoIt nur auf "&weiter" klicken lässt. Es ist hilfreich AutoIt erkennen zu lassen dass das Fenster "Bing-Bar Installieren" erscheint und reargieren kann. Das geht mit dem Befehl If. Soweit bist du aber noch nicht, das kommt noch.

    AutoIt kann mehr als nur auf "weiter" klicken, deswegen heissts ja auch nicht AutoWeiter ;)

    [autoit]

    winwait ("AutoPlay", "Installieren")
    ControlClick ("AutoPlay", "Installieren", "Button2")

    [/autoit]


    Perfekt.

    Du könntest aber auch;

    [autoit]

    winwait ("AutoPlay", "Informationen")
    ControlClick ("AutoPlay", "Informationen", "Button2")
    ;oder
    winwait ("AutoPlay", "Internet")
    ControlClick ("AutoPlay", "Internet", "Button2")

    [/autoit]

    Irgendwann werden dir Installationen ins Auge springen, die gar kein Text beinhalten. Beispielsweise Koepi`s XviD.

    Einmal editiert, zuletzt von Sentionline (16. April 2011 um 15:58)