Easy CD-DA Extractor (Hauptfenster nach der Installation schliessen)

  • Guten Morgen zusammen,

    ich versuche gerade eine Lösung zu finden, mit welchem Befehl ich das geöffnete Hauptfenster nach der Installation automatisch geschlossen bekomme!
    Während des Setups hat man keine Möglichkeit irgentein Befehl einzugeben, wer das Programm kennt, weiss was ich meine!


    Spoiler anzeigen
    [autoit]

    ShellExecute("Setup.exe")
    WinWait("Easy CD-DA Extractor Setup","&Weiter >")
    ControlClick("Easy CD-DA Extractor Setup","&Weiter >","Button3")
    WinWait("Easy CD-DA Extractor Setup","&Weiter >")
    ControlClick("Easy CD-DA Extractor Setup","&Weiter >","Button1")
    WinWait("Easy CD-DA Extractor Setup","&Weiter >")
    ControlClick("Easy CD-DA Extractor Setup","&Weiter >","Button1")
    WinWait("Easy CD-DA Extractor Setup","&Beenden")
    ControlClick("Easy CD-DA Extractor Setup","&Beenden","Button1")
    WinWait("Erinnerung","&Schlüssel eingeben")
    ControlClick("Erinnerung","&Schlüssel eingeben","TButton2")
    WinWait("Tragen Sie Ihren Schlüssel ein","")
    ControlSetText("Tragen Sie Ihren Schlüssel ein","","TEdit2","xxxxx@xxx.xx")
    ControlSetText("Tragen Sie Ihren Schlüssel ein","","TEdit1","xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx")
    WinWait("Tragen Sie Ihren Schlüssel ein","&OK")
    ControlClick("Tragen Sie Ihren Schlüssel ein","&OK","TButton2")
    WinWait("Dankeschön","Der Schlüssel ist gültig und g")
    ControlClick("Dankeschön","Der Schlüssel ist gültig und g","Button1")
    ;--- End ---

    [/autoit]

    Bitte helft mir!

    Einmal editiert, zuletzt von Forseti (17. Juni 2010 um 11:23)

  • Ich habe mir eben die Demo heruntergeladen, aber da ist die Setuproutine wohl etwas anders...
    Welches Fenster willst du denn geschlossen haben? Das allereste?
    Falls ja, dann versuch diesen Ansatz:

    [autoit]

    ShellExecute("Setup.exe")
    $First = WinWait("Easy CD-DA Extractor Setup","&Weiter >")
    ;... Hier dein kompletter Setupablauf...

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

    Winclose($First)

    [/autoit]

    Wer immer nur das tut, was er bereits kann - wird auch immer nur das bleiben, was er bereits ist!

  • Das Problem ist jetzt gelöst, oder?
    Falls es Schwierigkeiten mit dem Adressieren geben sollte gibt es (u.a.) folgende Möglichkeiten:
    1. Du holst dir den Fenstertitel mit:

    [autoit]

    $Title = Wingettitle("Easy CD-DA")
    Winclose($Title)
    Winkill($Title);falls Winclose es nicht schließen sollte

    [/autoit]

    2. Du schließt direkt den Prozess:

    [autoit]

    Processclose("Prozess.exe")

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

    ;oder

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

    $Title = Wingettitle("Easy CD-DA")
    $Prozess = WingetProcess($Title)
    Processclose($Prozess)

    [/autoit]

    Wer immer nur das tut, was er bereits kann - wird auch immer nur das bleiben, was er bereits ist!

  • Das Problem ist jetzt gelöst, oder?

    Also mit der ersten Methode von Dir funktioniert es nicht, das Fenster bleibt nach der Installation weiterhin geöffnet!

    Hier das Script:

    Spoiler anzeigen
    [autoit]

    ShellExecute("Setup.exe")
    $First = WinWait("Easy CD-DA Extractor Setup","&Weiter >")
    ControlClick("Easy CD-DA Extractor Setup","&Weiter >","Button3")
    WinWait("Easy CD-DA Extractor Setup","&Weiter >")
    ControlClick("Easy CD-DA Extractor Setup","&Weiter >","Button1")
    WinWait("Easy CD-DA Extractor Setup","&Weiter >")
    ControlClick("Easy CD-DA Extractor Setup","&Weiter >","Button1")
    WinWait("Easy CD-DA Extractor Setup","&Beenden")
    ControlClick("Easy CD-DA Extractor Setup","&Beenden","Button1")
    WinWait("Erinnerung","&Schlüssel eingeben")
    ControlClick("Erinnerung","&Schlüssel eingeben","TButton2")
    WinWait("Tragen Sie Ihren Schlüssel ein","")
    ControlSetText("Tragen Sie Ihren Schlüssel ein","","TEdit2","xxx@xxx.xx")
    ControlSetText("Tragen Sie Ihren Schlüssel ein","","TEdit1","xxxx-xxxx-xxxx-xxxxx-xxxxxxxxxx-xxxx-xxxx-xxxx-xxxxxx")
    WinWait("Tragen Sie Ihren Schlüssel ein","&OK")
    ControlClick("Tragen Sie Ihren Schlüssel ein","&OK","TButton2")
    WinWait("Dankeschön","Der Schlüssel ist gültig und g")
    ControlClick("Dankeschön","Der Schlüssel ist gültig und g","Button1")
    Winclose($First)

    [/autoit]

    XovoxKingdom, was soll ich jetzt statt des ($First) eingeben?

  • Spoiler anzeigen

    Leider auch keinen Erfolg bisher damit!
    Schliesst sich denn das Fenster, bei deiner Demoversion automatisch mit diesen Befehlen?

    Bitte um Antwort!

  • Existiert nach dem Installieren der Prozess "Setup.exe" (also der Installer)
    oder "nur" das Programm.
    Falls das Programm laufen würde, dann musst du es wahrscheinlich mit
    der Prozessclose Funktion probieren, indem du da als Parameter den Programmnamen
    eingibst:

    [autoit]

    Processclose("ezcddax.exe") ; so sollte der Prozess heissen

    [/autoit]


    andernfalls wenn es wirklich der Installer ist:

    [autoit]

    #RequireAdmin;Falls es benötigt wird, um den Prozess zu beenden
    $Prozess = Run("Setup.exe")
    $First = WinWait("Easy CD-DA Extractor Setup","&Weiter >")
    ;... Hier dein kompletter Setupablauf...

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

    Winclose($First);ggf. Winkill
    ProcessClose($Prozess)

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

    EDIT: Bei der Demo wird das Programm garnicht gestartet (darum geht es ja oder?)

    Wer immer nur das tut, was er bereits kann - wird auch immer nur das bleiben, was er bereits ist!

  • hmm also irgentwie will es einfach nicht klappen! :(

    Habe es jetzt mit beiden Methoden erfolglos versucht!

    Hier mal der Screenshot vom Task-Manager:

    Spoiler anzeigen

    Dort laufen auch 2 ezcddax.exe !

    Vieleicht könntest du ja mal deine Demoversion starten, und versuchen das Hauptfenster mittelst eines Scripts zum schliessen zu bringen?

    Hauptfenster:

    Spoiler anzeigen
  • Probiere mal das folgende Script nachdem du das Programm gestartet hast (so, dass das "unangenehme" Fenster offen ist)
    Die MsgBoxen zwischendurch helfen dir, da sie ansagen welche Aktion ausgeführt wurde.
    D.h. du musst, nachdem das Fenster geschlossen wurde, dir nur merken welche Technik dafür verantwortlich war!

    Spoiler anzeigen
    [autoit]

    #RequireAdmin
    Opt("Wintitlematchmode",2)
    $Title = WinGetTitle("Easy CD-DA")
    $Handle = WinGetHandle($Title)
    $Prozess = WinGetProcess($Title)
    If StringInStr($Title,"Mozilla") Then
    MsgBox(0,"ERROR!","Firefox ist noch offen mit einem ähnlichen Titel.. bitte schließen!")
    Exit
    EndIf
    MsgBox(0,"Fensterinfo","Titel : "&$Title&@CRLF&"Handle : "&$Handle&@CRLF&"Prozess : "&$Prozess)
    MsgBox(0,"Testphase","Wenn das sich gleich bewegende Fenster das Gesuchte ist, dann müsste es funktionieren")
    WinMove($Title,"",0,0,600,600,100)
    Sleep(1000)
    WinClose($Title)
    MsgBox(0,"Kontrolle","Das war nun Winclose.. hat es funktioniert?")
    WinKill($Title)
    MsgBox(0,"Kontrolle","Das war nun Winkill.. hat es funktioniert?")
    For $i=1 To 10
    If ProcessExists($Prozess) = True Then
    ProcessClose($Prozess)
    Else
    ExitLoop
    EndIf
    Sleep(100)
    Next
    MsgBox(0,"Kontrolle","Das war nun Processclose.. hat es funktioniert?")
    If ProcessExists($Prozess) = True Then
    MsgBox(0,"Error!","Prozess existiert noch")
    Else
    MsgBox(0,"Erfolg!","Prozess wurde geschlossen!")
    EndIf

    [/autoit]

    Wer immer nur das tut, was er bereits kann - wird auch immer nur das bleiben, was er bereits ist!

  • Probiere mal das folgende Script nachdem du das Programm gestartet hast (so, dass das "unangenehme" Fenster offen ist)
    Die MsgBoxen zwischendurch helfen dir, da sie ansagen welche Aktion ausgeführt wurde.
    D.h. du musst, nachdem das Fenster geschlossen wurde, dir nur merken welche Technik dafür verantwortlich war!

    Danke Dir vielmals für das Script XovoxKingdom ! :thumbup:

    Spoiler anzeigen


    Ja mit Winclose hat es jetzt funktioniert, das Fenster von Easy CD-DA Extractor hat sich automatisch geschlossen!

    Welche zusätzlichen Befehle muss ich jetzt in meinem Script eingeben?