Fenster schließen ?

  • Hallo Leute,

    ich habe ein Problem mit dem Fenster (siehe Screenshot). Ich bekomme dies nicht geschlossen.

    Mein erster Versuch:
    WinWait("VENTURIS Setup", "InstallShield Wizard hat die Wartungsoperationen")
    ControlClick("VENTURIS Setup", "InstallShield Wizard hat die Wartungsoperationen","Fertigstellen")

    Mein zweiter Versuch:
    WinWait("VENTURIS Setup", "InstallShield Wizard hat die Wartungsoperationen")
    ControlClick("VENTURIS Setup", "","Button4")

    [Blockierte Grafik: http://imgbox.de/users/public/images/p2434i90.jpg]

    [Blockierte Grafik: http://imgbox.de/users/public/images/j37271w90.jpg]

    Was mache ich falsch ?

    Besten Dank im Voraus !

    Viele Grüße,
    Dino

    Einmal editiert, zuletzt von Dino (30. Januar 2009 um 14:44)

  • Schau mal in der Autoitanleitung (kann im moment leider selber net schauen da ich keine habe), ob du nicht auch die "Advanced Class" nutzen kannst.
    Wiel eigentlich sollte das funktionieren.
    Kannst ja auch mal anch der WinWait ne MsgBox setzten, und schauen ob die aufgeht.

    MfG
    Der_Doc

  • [autoit]

    ControlClick("VENTURIS Setup", "InstallShield Wizard hat die Wartungsoperationen",1)

    [/autoit]


    und so?

  • Hallo zusammen,

    geht weiterhin nicht.... Das kuriose ist, wenn ich ein neues AU3-File mache und als Inhalt der Datei den Code (siehe unten) habe, dann wird das Fenster geschlossen. Befindet sich der Code in der gesamte (andere AU3) Datei, geht es nicht...

    [autoit]

    WinActivate("VENTURIS Setup", "InstallShield Wizard hat die Wartungsoperationen")
    WinWait("VENTURIS Setup", "InstallShield Wizard hat die Wartungsoperationen")
    Sleep(50)
    ControlClick("VENTURIS Setup", "InstallShield Wizard hat die Wartungsoperationen","Fertigstellen")

    [/autoit]
  • Hallo zusammen,

    geht weiterhin nicht.... Das kuriose ist, wenn ich ein neues AU3-File mache und als Inhalt der Datei den Code (siehe unten) habe, dann wird das Fenster geschlossen. Befindet sich der Code in der gesamte (andere AU3) Datei, geht es nicht...

    [autoit]

    WinActivate("VENTURIS Setup", "InstallShield Wizard hat die Wartungsoperationen")
    WinWait("VENTURIS Setup", "InstallShield Wizard hat die Wartungsoperationen")
    Sleep(50)
    ControlClick("VENTURIS Setup", "InstallShield Wizard hat die Wartungsoperationen","Fertigstellen")

    [/autoit]


    tausche mal die Reihenfolge der Anweisungen WinActivate mit WinWait denn wenn er das Fenster aktivieren kann dann gibt es das Fenster ja schon (also muss er auch auf nix mehr 'waiten') ich würde mal eine msgbox vor den Block setzen um zu sehen ob er den überhaupt (bis dahin) abarbeitet

  • Hallo zusammen,

    ich habe es mit MsgBox auch getestet und die Script läuft nicht bis dahin.

    Anbei der Inhalt der AU3-Datei:

    [autoit]

    Opt("WinWaitDelay",100)
    Opt("WinTitleMatchMode",4)
    Opt("WinDetectHiddenText",1)
    Opt("MouseCoordMode",0)

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

    ;~ ####################################################################
    ;~ Konstanten
    $InstallDirTriCAD="C:\Programme\TriCAD_8.5\"
    ;~ ####################################################################

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

    ;~ ####################################################################
    ;~ Installation von TriCAD MS Release 8.x für MicroStation V8 und XM
    ;~ ####################################################################

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

    ;~ DirRemove($InstallDirTriCAD, 1)

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

    ShellExecute(@ScriptDir & "\TriCAD\Disk1\Setup.exe")
    ;~ Run('G:\ustation_admin_XM\install\TriCAD\TriCAD MS 8.5 XM_2008-10-10\Disk1\Setup.exe')

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

    WinWait("Wählen Sie eine Setup-Sprache aus","Wählen Sie die Sprache")
    ControlClick("Wählen Sie eine Setup-Sprache aus", "","Button1")

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

    WinWait("VENTURIS Setup")
    Do
    Sleep(100)
    If WinExists("VENTURIS Setup", "Vorhandene Installation gefunden") Then

    ;~ ####################################################################
    ;~ Anfang der Deinstallation
    WinWait("VENTURIS Setup", "Vorhandene Installation gefunden")
    ControlClick("VENTURIS Setup", "","Button3")
    ControlClick("VENTURIS Setup", "","Button5")

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

    WinWait("Confirm File Deletion", "Wollen Sie wirklich die ausgewählte Anwendung")
    ControlClick("Confirm File Deletion", "","Button1")

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

    WinWait("VENTURIS Setup", "Setup installiert VENTURIS in den folgenden Ordner.")
    ControlClick("VENTURIS Setup", "","Button3")

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

    WinActivate("VENTURIS Setup", "InstallShield Wizard hat die Wartungsoperationen")
    WinWait("VENTURIS Setup", "InstallShield Wizard hat die Wartungsoperationen")
    ;~ ControlClick("VENTURIS Setup", "InstallShield Wizard hat die Wartungsoperationen","Fertigstellen")
    ControlClick("VENTURIS Setup", "InstallShield Wizard hat die Wartungsoperationen",1)
    ;~ WinWait("VENTURIS Setup", "Fertigstellen")
    ;~ ControlClick("VENTURIS Setup", "Fertigstellen","Button4")

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

    ;~ Ende der Deinstallation
    ;~ ####################################################################

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

    ShellExecute(@ScriptDir & "\TriCAD\Disk1\Setup.exe")

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

    ExitLoop
    EndIf

    Until WinExists("VENTURIS Setup", "Installation des AUTOMOTIVE Release")
    WinWait("VENTURIS Setup", "Installation des AUTOMOTIVE Release")

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

    ;~ ####################################################################
    ;~ Anfang der Installation

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

    ControlClick("VENTURIS Setup", "","Button1")
    ControlClick("VENTURIS Setup", "","Button1")

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

    WinWait("VENTURIS Setup", "Setup installiert VENTURIS in den folgenden Ordner.")
    ControlClick("VENTURIS Setup", "","Button3")

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

    WinWait("Ordner auswählen", "Wählen Sie den Installationsordner aus.")
    ControlSetText("Ordner auswählen","","Edit1", "C:\Programme\TriCAD_8.5")
    ;~ ControlSetText("Ordner auswählen","","Edit1", $InstallDirTriCAD)
    ControlClick("Ordner auswählen", "","Button1")

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

    WinWait("VENTURIS Setup", "Setup installiert VENTURIS in den folgenden Ordner.")
    ControlClick("VENTURIS Setup", "","Button1")

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

    WinWait("VENTURIS Setup","MicroStation Ordner auswählen!")
    ControlClick("VENTURIS Setup", "MicroStation Ordner auswählen!","Button1")

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

    WinWait("VENTURIS Setup","Komponenten wählen")
    ControlClick("VENTURIS Setup", "","Button2")

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

    WinWait("VENTURIS Setup","InstallShield Wizard abgeschlossen")
    ControlClick("VENTURIS Setup", "","Button4")
    ;~ Ende der Installation
    ;~ ####################################################################

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

    Bei diesem Abschnitt bleibt es hängen:

    [autoit]

    WinActivate("VENTURIS Setup", "InstallShield Wizard hat die Wartungsoperationen")
    WinWait("VENTURIS Setup", "InstallShield Wizard hat die Wartungsoperationen")
    ;~ ControlClick("VENTURIS Setup", "InstallShield Wizard hat die Wartungsoperationen","Fertigstellen")
    ControlClick("VENTURIS Setup", "InstallShield Wizard hat die Wartungsoperationen",1)
    ;~ WinWait("VENTURIS Setup", "Fertigstellen")
    ;~ ControlClick("VENTURIS Setup", "Fertigstellen","Button4")

    [/autoit]

    Wer kann mir weiterhelfen ?

    Besten Dank !

    Viele Grüße,
    Dino

    • Offizieller Beitrag

    Das hat mehrsolala doch schon (fast) beantwortet. :P

    [autoit]

    WinActivate("VENTURIS Setup", "InstallShield Wizard hat die Wartungsoperationen")
    WinWait("VENTURIS Setup", "InstallShield Wizard hat die Wartungsoperationen")

    [/autoit]

    ist 'suboptimal' :D
    besser:

    [autoit]

    WinActivate("VENTURIS Setup", "InstallShield Wizard hat die Wartungsoperationen")
    WinWaitActive("VENTURIS Setup", "InstallShield Wizard hat die Wartungsoperationen")

    [/autoit]
  • [autoit]

    WinWait("VENTURIS Setup", "Setup installiert VENTURIS in den folgenden Ordner.")

    [/autoit]


    Ich hab das Programm nicht aber ich behaupte mal das in der Deinstallation kein solcher Dialog vorkommt. Also wartet er sich tot.

    • Offizieller Beitrag

    Was für ein Programm ist Venturis ? Hab bei Google nichts gefunden . Kann man das Downloaden zum Test ? Wenn nicht poste doch mal ein Screenshot von den einzelnen Dialogen beim Deinstallieren . Mehrsolala könnte recht haben. Logisch ist die Zeile

    [autoit]

    WinWait("VENTURIS Setup", "Setup installiert VENTURIS in den folgenden Ordner.")

    [/autoit]

    beim deinstallieren nicht .

  • Hallo zusammen,

    das war mein Fehler mit Copy / Paste beim Code schreiben. Dieses Dialog "WinWait("VENTURIS Setup", "Setup installiert VENTURIS in den folgenden Ordner.") kommt nicht bei der Installation. Jetzt ist das Problem mit der Deinstallation behoben. Danke ! :thumbup:

    Ich habe eine andere Frage:
    In der Script wird die Setup.exe ShellExecute(@ScriptDir & "\TriCAD\Disk1\Setup.exe") gestartet. Falls das Programm existiert wird dieser erstmal deinstalliert (funktioniert jetzt) :). Danach wird die Setup.exe nochmal gestartet und das Programm nach der Deinstallation zu installieren. Ich habe wie folgt es ausprobiert, bekomme aber das Dilaog mit "Wählen Sie die Sprache" nicht weggedrückt.

    Habe an dieser Stelle den Code an der falsche Stelle eingefügt:

    [autoit]

    ;~ Ende der Deinstallation
    ;~ ####################################################################

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

    ShellExecute(@ScriptDir & "\TriCAD\Disk1\Setup.exe")

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

    If WinExists("Wählen Sie eine Setup-Sprache aus","Wählen Sie die Sprache") Then
    ControlClick("Wählen Sie eine Setup-Sprache aus", "","Button1")
    EndIf
    ExitLoop
    EndIf

    [/autoit]

    gesamate AU3-Datei:

    [autoit]

    Opt("WinWaitDelay",100)
    Opt("WinTitleMatchMode",4)
    Opt("WinDetectHiddenText",1)
    Opt("MouseCoordMode",0)

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

    ;~ ####################################################################
    ;~ Konstanten
    $InstallDirTriCAD="C:\Programme\TriCAD_8.5\"
    ;~ ####################################################################

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

    ;~ ####################################################################
    ;~ Installation von TriCAD MS Release 8.x für MicroStation V8 und XM
    ;~ ####################################################################

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

    ;~ DirRemove($InstallDirTriCAD, 1)

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

    ShellExecute(@ScriptDir & "\TriCAD\Disk1\Setup.exe")
    ;~ Run('G:\ustation_admin_XM\install\TriCAD\TriCAD MS 8.5 XM_2008-10-10\Disk1\Setup.exe')

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

    WinWait("Wählen Sie eine Setup-Sprache aus","Wählen Sie die Sprache")
    ControlClick("Wählen Sie eine Setup-Sprache aus", "","Button1")

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

    WinWait("VENTURIS Setup")
    Do
    Sleep(100)
    If WinExists("VENTURIS Setup", "Vorhandene Installation gefunden") Then

    ;~ ####################################################################
    ;~ Anfang der Deinstallation
    WinWait("VENTURIS Setup", "Vorhandene Installation gefunden")
    ControlClick("VENTURIS Setup", "","Button3")
    ControlClick("VENTURIS Setup", "","Button5")

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

    WinWait("Confirm File Deletion", "Wollen Sie wirklich die ausgewählte Anwendung")
    ControlClick("Confirm File Deletion", "","Button1")

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

    WinActivate("VENTURIS Setup", "InstallShield Wizard hat die Wartungsoperationen")
    WinWait("VENTURIS Setup", "InstallShield Wizard hat die Wartungsoperationen")
    ControlClick("VENTURIS Setup", "InstallShield Wizard hat die Wartungsoperationen","Fertigstellen")

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

    ;~ Ende der Deinstallation
    ;~ ####################################################################

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

    ShellExecute(@ScriptDir & "\TriCAD\Disk1\Setup.exe")

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

    If WinExists("Wählen Sie eine Setup-Sprache aus","Wählen Sie die Sprache") Then
    ControlClick("Wählen Sie eine Setup-Sprache aus", "","Button1")
    EndIf
    ExitLoop
    EndIf

    Until WinExists("VENTURIS Setup", "Installation des AUTOMOTIVE Release")
    WinWait("VENTURIS Setup", "Installation des AUTOMOTIVE Release")

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

    ;~ ####################################################################
    ;~ Anfang der Installation

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

    ControlClick("VENTURIS Setup", "","Button1")
    ControlClick("VENTURIS Setup", "","Button1")

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

    WinWait("VENTURIS Setup", "Setup installiert VENTURIS in den folgenden Ordner.")
    ControlClick("VENTURIS Setup", "","Button3")

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

    WinWait("Ordner auswählen", "Wählen Sie den Installationsordner aus.")
    ControlSetText("Ordner auswählen","","Edit1", "C:\Programme\TriCAD_8.5")
    ;~ ControlSetText("Ordner auswählen","","Edit1", $InstallDirTriCAD)
    ControlClick("Ordner auswählen", "","Button1")

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

    WinWait("VENTURIS Setup", "Setup installiert VENTURIS in den folgenden Ordner.")
    ControlClick("VENTURIS Setup", "","Button1")

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

    WinWait("VENTURIS Setup","MicroStation Ordner auswählen!")
    ControlClick("VENTURIS Setup", "MicroStation Ordner auswählen!","Button1")

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

    WinWait("VENTURIS Setup","Komponenten wählen")
    ControlClick("VENTURIS Setup", "","Button2")

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

    ;~ WinWait("VENTURIS Setup","InstallShield Wizard abgeschlossen")
    ;~ ControlClick("VENTURIS Setup", "","Button4")

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

    WinActivate("VENTURIS Setup", "InstallShield Wizard")
    WinWait("VENTURIS Setup", "InstallShield Wizard")
    ControlClick("VENTURIS Setup", "InstallShield Wizard","Fertigstellen")

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

    ;~ Ende der Installation
    ;~ ####################################################################

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

    Besten Dank !

    Viele Grüße,
    Dino

    • Offizieller Beitrag

    Wie sollen wir jetz nachvollziehen wo der Fehler liegt ? Da keiner das Prog hat ausser dir kann man das schlecht ausprobieren. Deshalb der Vorschlag wie in meinem letzen Post. Mach einen Screenshot von allen Dialogen , in der Reihenfolge des Auftretens.

  • Zitat von Dino

    Habe an dieser Stelle den Code an der falsche Stelle eingefügt:

    [autoit]

    ;~ Ende der Deinstallation
    ;~ ####################################################################

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

    ShellExecute(@ScriptDir & "\TriCAD\Disk1\Setup.exe")

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

    If WinExists("Wählen Sie eine Setup-Sprache aus","Wählen Sie die Sprache") Then
    ControlClick("Wählen Sie eine Setup-Sprache aus", "","Button1")
    EndIf
    ExitLoop
    EndIf

    [/autoit]

    Du solltest anstelle des WinExists mal WinWait (mit Timeout) verwenden, da ja nicht sofort nach dem Programmstart das Fenster schon da ist, also geht der Controlclick ins Leere ;)

    Wenn das Sprachauswahlfenster optional ist (so sieht es bei dir zumindest aus), dann:

    [autoit]

    ;~ Ende der Deinstallation
    ;~ ####################################################################

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

    ShellExecute(@ScriptDir & "\TriCAD\Disk1\Setup.exe")

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

    If WinWait("Wählen Sie eine Setup-Sprache aus", "Wählen Sie die Sprache", 3) Then
    ControlClick("Wählen Sie eine Setup-Sprache aus", "", "Button1")
    EndIf

    [/autoit]


    Wenn das Fenster immer angezeigt wird (so wird es sein ;)), dann:

    [autoit]

    ;~ Ende der Deinstallation
    ;~ ####################################################################

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

    ShellExecute(@ScriptDir & "\TriCAD\Disk1\Setup.exe")

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

    WinWait("Wählen Sie eine Setup-Sprache aus", "Wählen Sie die Sprache")
    ControlClick("Wählen Sie eine Setup-Sprache aus", "", "Button1")

    [/autoit]
  • Wenn das Sprachauswahlfenster optional ist (so sieht es bei dir zumindest aus), dann:

    [autoit]


    ;~ Ende der Deinstallation
    ;~ ####################################################################

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

    ShellExecute(@ScriptDir & "\TriCAD\Disk1\Setup.exe")

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

    If WinWait("Wählen Sie eine Setup-Sprache aus", "Wählen Sie die Sprache", 3) Then
    ControlClick("Wählen Sie eine Setup-Sprache aus", "", "Button1")
    EndIf

    [/autoit]


    Das ist auch Schwachsinn... Das ist das selbe wie unten:
    Winwait wartet ja, BIS das Fenster existiert. Dann wird If immer True, also ausgeführt.
    Du musst also in jedem Fall das untere Beispiel nehmen

    Twitter: @L3viathan2142
    Benutze AutoIt persönlich nicht mehr, da ich keinen Windows-Rechner mehr besitze.

  • Nö ist kein Schwachsinn winwait wartet 3 Sekunden ob das Fenster da ist und wenns nicht kommt bringt er nen Timeout und if schlägt fehl

  • Zitat von L3viathan2142

    Das ist auch Schwachsinn...

    WinWait wartet bis das Fenster vorhanden ist, oder bis das Timeout erreicht wurde. In meinem Beispiel 3 Sekunden!
    Also wenn das Fenster nicht immer erscheint, dann macht das Skript nach 3 Sekunden weiter.
    Ich habe es so gemacht, da Dino ja auch das Fenster mit WinExists prüft, da diese Prüfung aber nur einmalig stattfindet, ist hier ein WinWait mit Timeout besser.
    Aber wie ich ja schon gesagt habe:

    Zitat von funkey

    Wenn das Fenster immer angezeigt wird (so wird es sein ) ....

  • ich habe es jetzt wie folgt getestet:

    [autoit]

    ;~ Ende der Deinstallation
    ;~ ####################################################################

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

    ShellExecute(@ScriptDir & "\TriCAD\Disk1\Setup.exe")

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

    WinWait("Wählen Sie eine Setup-Sprache aus", "Wählen Sie die Sprache")
    ControlClick("Wählen Sie eine Setup-Sprache aus", "", "Button1")
    Sleep(5000)

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

    ExitLoop
    EndIf

    Until WinExists("VENTURIS Setup", "Installation des AUTOMOTIVE Release")
    WinWait("VENTURIS Setup", "Installation des AUTOMOTIVE Release")

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

    ;~ ####################################################################
    ;~ Anfang der Installation

    [/autoit]

    Wenn das Programm nach der Deinstallation instaliert werden soll, bekomme ich folgende Fehlermeldung:
    [Blockierte Grafik: http://imgbox.de/users/public/images/l7174k90.jpg]