WINAMP 2.91c Installer Problem mit den klicks

  • Hallo zusammen!

    Ich baue mir gerade den nächsten auto Installer (Winamp 2.91c )und komme einfach nicht weiter. Ich kann AutoIt sagen er soll sich auf die und die Stelle konzentrieren, aber ich kann keine klicks setzen, da mir die Dialogfelder nicht gezeigt werden. Und auch Tastaturbefehle wie Tab und Space wird nicht gesetzt per Befehl. Wenn ich das aber selber per Tastatur mache geht das, Nur in AutoIt nicht.

    Wie kann ich das Problem lösen? Ich habe mir gedacht das AutoIt sich villeicht auf das Fenster konzentriert und per Mauskoordinaten die Klicks setzt. Ich habs jetzt so:

    [Blockierte Grafik: http://www.abload.de/thumb/zwischenablage06gf10.png]

    Der Installer geht bis hierhin:

    [Blockierte Grafik: http://www.abload.de/thumb/zwischenablage04yce8.png]

    Ich hätte das gerne so:

    [Blockierte Grafik: http://www.abload.de/thumb/zwischenablage05yhpr.png]

    Mein Code sieht so aus:

    [autoit]

    ShellExecute ("WinAmp2.91c.exe")
    WinWaitActive ("Winamp 2.91c - Installation", "Winamp ist Freeware")
    ControlClick("Winamp 2.91c - Installation", "Winamp ist Freeware", "Button2")
    ControlFocus("Winamp 2.91c - Installation", "Hiermit wird Winamp 2.91c", "ComboBox1")
    ControlCommand("Winamp 2.91c - Installation", "Hiermit wird Winamp 2.91c", "ComboBox1", "SelectString", "Komplett")
    ControlFocus("Winamp 2.91c - Installation", "Hiermit wird Winamp 2.91c", "SysTreeView321")
    ControlSend("Winamp 2.91c - Installation", "Hiermit wird Winamp 2.91c", "SysTreeView321", "{DOWN}" & "{SPACE}")
    ControlClick("Winamp 2.91c - Installation", "Hiermit wird Winamp 2.91c", "Button2")
    WinWaitActive ("Winamp 2.91c - Installation", "Bitte das Verzeichnis wählen")
    ControlFocus("Winamp 2.91c - Installation", "Bitte das Verzeichnis wählen", "edit1")
    ControlSetText("Winamp 2.91c - Installation", "Bitte das Verzeichnis wählen", "edit1", @ProgramFilesDir & "\Winamp291c\")
    ControlClick("Winamp 2.91c - Installation", "Bitte das Verzeichnis wählen", "Button2")
    Sleep (2000)
    WinWaitActive("Nullsoft Winamp Setup: Einstellungen", "Die Maus über die Einstellungen")
    WinActivate("Nullsoft Winamp Setup: Einstellungen", "Die Maus über die Einstellungen")
    ControlFocus("Nullsoft Winamp Setup: Einstellungen", "Die Maus über die Einstellungen", "#327701")
    ControlSend("Nullsoft Winamp Setup: Einstellungen", "Die Maus über die Einstellungen", "#327701", "{TAB}" & "{TAB}" & "{TAB}" & "{SPACE}")

    [/autoit]

    PS: Bitte nicht auf WinAmp 5 verweisen. Den möchte ich nicht.
    PS2: Ich bin ein blutiger Anfänger. Bitte nich sofort hauen!

    Ich kanke euch im Voraus für eure Hilfe.! :)

    2 Mal editiert, zuletzt von Sentionline (26. Juni 2010 um 18:03)

  • Das machste doch eh schon sehr gut mit den Controlfunktionen ;)

    Kleinerer tipp:
    Statt winwaitactive reicht ein winwait.
    (dann läuft es auch wenn ein anderes fenster im vordergrund ist)

    hier wäre eine Lösung, geht aber bestimmt mit 100 verschiedenen Möglichkeiten ;)

    Spoiler anzeigen
    [autoit]

    ShellExecute ("WinAmp2.91c.exe")
    WinWait ("Winamp 2.91c - Installation", "Winamp ist Freeware")
    ControlClick("Winamp 2.91c - Installation", "Winamp ist Freeware", "Button2")
    ;ControlFocus("Winamp 2.91c - Installation", "Hiermit wird Winamp 2.91c", "ComboBox1"); Du brauchst hier glaub ich keinen Fokus
    ControlCommand("Winamp 2.91c - Installation", "Hiermit wird Winamp 2.91c", "ComboBox1", "SelectString", "Komplett")
    ControlFocus("Winamp 2.91c - Installation", "Hiermit wird Winamp 2.91c", "SysTreeView321")
    ControlSend("Winamp 2.91c - Installation", "Hiermit wird Winamp 2.91c", "SysTreeView321", "{DOWN}" & "{SPACE}")
    ControlClick("Winamp 2.91c - Installation", "Hiermit wird Winamp 2.91c", "Button2")
    WinWait ("Winamp 2.91c - Installation", "Bitte das Verzeichnis wählen")
    ;ControlFocus("Winamp 2.91c - Installation", "Bitte das Verzeichnis wählen", "Edit1"); hier genauso
    ControlSetText("Winamp 2.91c - Installation", "Bitte das Verzeichnis wählen", "Edit1", @ProgramFilesDir & "\Winamp291c\")
    ControlClick("Winamp 2.91c - Installation", "Bitte das Verzeichnis wählen", "Button2")
    ;Sleep (2000); brauchst du nicht da du ja WinWait hast
    WinWait("Nullsoft Winamp Setup: Einstellungen", "Hinweis: Für CDDB-Abfragen")
    ;ControlFocus("Nullsoft Winamp Setup: Einstellungen", "Hinweis: Für CDDB-Abfragen", "#327701"); sowie auch hier
    ;ControlSend("Nullsoft Winamp Setup: Einstellungen", "Hinweis: Für CDDB-Abfragen", "#327701", "{TAB}" & "{TAB}" & "{TAB}" & "{SPACE}"); funktioniert nicht
    ControlClick("Nullsoft Winamp Setup: Einstellungen", "Hinweis: Für CDDB-Abfragen", "ListBox1", "primary", 1, 14, 117)
    ControlClick("Nullsoft Winamp Setup: Einstellungen", "Hinweis: Für CDDB-Abfragen", "ListBox1", "primary", 1, 14, 136)

    [/autoit]

    Gruß
    Schnitzel

  • DANKE!!!!

    Ich such mir auch schon den Wolf ab. Hatte bis jetzt das eingefügt:

    [autoit]

    ControlGetPos("Nullsoft Winamp Setup: Einstellungen", "Keine Verbindung", "[CLASS:#32770; INSTANCE:1]")
    ControlClick("Nullsoft Winamp Setup: Einstellungen", "[CLASS:#32770; INSTANCE:1]", "", "left", 1, 13, 76)

    [/autoit]


    Passiert natürlich nix.

    Ich teste mal deinen Script. So eine Dialogbox wie in diesem Fenster bei Winamp hatte ich noch bei keiner Installation. Da kriegt man echt Krämpfe.

    /edit:

    No Way. Es werden keine Klicks gesetzt. ;(

    Einmal editiert, zuletzt von Sentionline (26. Juni 2010 um 17:09)

  • Kannste die Sachen mit den Pfeiltasten markieren?
    Wenn ja kannste die auch mit der Leertaste aktivieren, bzw. deaktivieren
    Versuch das mal mit controlsend und sag dann, obs geklappt hat...

    Spoiler anzeigen

    Grundkenntnisse in: C++, JavaScript
    Sehr gute Kenntnisse: PHP, JAVA, C und näturlich AutoIt


    Klaviatur, Anhang UDF, GDI+ Mühle

    Zitat

    "Wenn einen um 20h der Pizzadienst anruft und fragt, ob man's nur vergessen hat und ob man das gleiche
    möchte wie immer -- dann sollte man sein Bestellverhalten evtl überdenken"

  • Nein, Pfeiltasten gehen nicht. Mit den Pfeiltasten kann ich nur zwischen den beiden unteren Schaltern umschalten. TAB Befehl geht nur manuell, nicht über Script. Ich fress ein Besen gleich 8|

    /edit:

    Habe das mal so gesetzt:

    [autoit]

    ControlClick("Nullsoft Winamp Setup: Einstellungen", "Hinweis: Für CDDB-Abfragen", "#327701", "primary", 1, 14, 117)
    ControlClick("Nullsoft Winamp Setup: Einstellungen", "Hinweis: Für CDDB-Abfragen", "#327701", "primary", 1, 14, 136)

    [/autoit]

    Und auch so:

    [autoit]

    ControlClick("Nullsoft Winamp Setup: Einstellungen", "Hinweis: Für CDDB-Abfragen", "[CLASS:#32770; INSTANCE:1]", "primary", 1, 14, 117)
    ControlClick("Nullsoft Winamp Setup: Einstellungen", "Hinweis: Für CDDB-Abfragen", "[CLASS:#32770; INSTANCE:1]", "primary", 1, 14, 136)

    [/autoit]

    No Way ;(

  • Ich sitze gerade am Laptop, habe 1280x800 als Auflösung. Ich möchte das ja als Auto Installer einbauen, dazu muss AutoIt sich auf das Fenster konzentrieren, nicht auf eine fixe Auflösung. Klicks gehen definitiv nicht.

    HELP

    /edit:

    Ich muss irgendwie mit diesen Werten arbeiten. Nur weiss ich nicht wie:

    Zitat

    >>>> Control <<<<
    Class: #32770
    Instance: 1
    ClassnameNN: #327701
    Name:
    Advanced (Class): [CLASS:#32770; INSTANCE:1]

    Einmal editiert, zuletzt von Sentionline (26. Juni 2010 um 17:33)

  • Trotzdem gings nicht. Habe es jetzt aber gelöst und es funktioniert.

    Vielen Dank Euch!

    [autoit]

    ShellExecute ("WinAmp2.91c.exe")
    WinWait ("Winamp 2.91c - Installation", "Winamp ist Freeware")
    ControlClick("Winamp 2.91c - Installation", "Winamp ist Freeware", "Button2")
    ControlCommand("Winamp 2.91c - Installation", "Hiermit wird Winamp 2.91c", "ComboBox1", "SelectString", "Komplett")
    ControlFocus("Winamp 2.91c - Installation", "Hiermit wird Winamp 2.91c", "SysTreeView321")
    ControlSend("Winamp 2.91c - Installation", "Hiermit wird Winamp 2.91c", "SysTreeView321", "{DOWN}" & "{SPACE}")
    ControlClick("Winamp 2.91c - Installation", "Hiermit wird Winamp 2.91c", "Button2")
    WinWait ("Winamp 2.91c - Installation", "Bitte das Verzeichnis wählen")
    ControlSetText("Winamp 2.91c - Installation", "Bitte das Verzeichnis wählen", "Edit1", @ProgramFilesDir & "\Winamp291c\")
    ControlClick("Winamp 2.91c - Installation", "Bitte das Verzeichnis wählen", "Button2")
    WinWaitActive("Nullsoft Winamp Setup: Einstellungen", "Hinweis: Für CDDB-Abfragen")
    ControlFocus ( "Nullsoft Winamp Setup: Einstellungen", "", "#327701" )
    ControlClick("Nullsoft Winamp Setup: Einstellungen", "Hinweis: Für CDDB-Abfragen", "ListBox1", "left", 1, 15, 75)
    ControlFocus ( "Nullsoft Winamp Setup: Einstellungen", "", "#327701" )
    ControlClick("Nullsoft Winamp Setup: Einstellungen", "Hinweis: Für CDDB-Abfragen", "ListBox1", "left", 1, 15, 95)
    ControlClick("Nullsoft Winamp Setup: Einstellungen", "Hinweis: Für CDDB-Abfragen", "Button1")
    WinWait ("Nullsoft Winamp Setup: Winamp erfolgreich", "Winamp ist jetzt installiert")
    ControlClick("Nullsoft Winamp Setup: Winamp erfolgreich", "Winamp ist jetzt installiert", "Button1")
    WinKill ("Winamp 2.91")

    [/autoit]

    I AM SO HAPPY!!!!! 8o :thumbup:

    4 Mal editiert, zuletzt von Sentionline (26. Juni 2010 um 18:40)