Wie Spybot richtig auslesen

  • Hallo, liebe AutoIt-User,

    bin nach langer Zeit mal wieder etwas zum "testen" meiner Ideen gekommen und habe da gleich ein (für die Freaks wahrscheinlich ein kleines) Problem: Ich wollte das Update von Spybot automatisieren, scheitere aber daran, das ich das nicht korrekt auslesen kann, weder funktioniert die If-Abfrage (so wie ich es dachte *gg*), noch erscheint beim Auslesen die korrekte Information. Hier der Code dazu (ich hoffe, ich poste richtig, war ja leider lange nicht zu Autoit gekommen):

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    Opt("WinWaitDelay",100)
    Opt("WinTitleMatchMode",4)
    Opt("WinDetectHiddenText",1)
    Opt("MouseCoordMode",0)
    $SpB="C:\Programme\Spybot - Search & Destroy\SDUpdate.exe"

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

    Run ($SpB,"",@SW_MINIMIZE)
    ;WinWaitActive("SSpybot-S&D-Updater")
    ;WinWait("SSpybot-S&D-Updater")

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

    WinWait("Spybot-S&D-Updater","")
    If Not WinActive("Spybot-S&D-Updater","") Then WinActivate("Spybot-S&D-Updater","")
    WinWaitActive("Spybot-S&D-Updater","")

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

    Send("{TAB}{TAB}{SPACE}")
    WinWait("Warnung","")
    If Not WinActive("Warnung","") Then WinActivate("Warnung","")
    WinWaitActive("Warnung","")
    Sleep (2000); 5sek
    Send(" ")
    ;Sleep (5000); 5sek
    Send("s")
    ;Sleep (3000)
    WinWait("Informationen","")
    If Not WinActive("Informationen","") Then WinActivate("Informationen","")
    WinWaitActive("Informationen","")
    $SpUpd = WinGetText("Informationen","")
    Sleep(3000)
    Send("{SPACE}")
    ;MsgBox(0, "Text read was:", $SpUpd) ; Update auswerten

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

    If $SpUpd = "OK" or $SpUpd="ok" then
    MsgBox(0, "Text read was:", "Keine Updates verfügbar")
    Else
    MsgBox(0, "Text read was:", "Updates sind: "& $SpUpd); hier soll es dann weiter gehen, wenn Updates da sind
    ; und ich diese korrekt auslesen kann.
    EndIf

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


    [/code]

    Und das gleiche Problem habe ich beim Immunisieren, ich dachte, ich könnte auch irgendwie auslesen, was ursprünglich nicht geschützt war und dann - nach dem Immunisieren eine entsprechende Meldung hinbekommen: zum Beispiel in der Art: Ursprünglich ungeschütz: xxxx, jetzt ungeschützt 0. Aber ich bekomme das auslesen dort überhaupt nicht hin und da ich denke, das liegt ausschließlich an mir, bitte ich um einen "Denkanstoß" von den Profis. Danke im Voraus dafür. (Ach so, Code zum 2. Teil habe ich nicht auf diesem PC, dürfte aber nicht schlimm sein - da ich es per Send-Befehl zwar hin bekommen hatte, das immunisiert wurde, aber halt das auslesen nicht klappte.)
    LG ringsherum

    Manne.

    PS.: Irgendwie klappt das mit dem Qellcode einklappen hier nicht so richtig, bitte nochmals um Hilfe dafür und um Verzeihung.

    Einmal editiert, zuletzt von Manne363 (10. März 2010 um 13:38)

  • versuchs am besten mal mit den Control....-Funktionen


    Controlclick, controlgettext, usw.
    dann brauchste die ganzen send und sleep nichtmehr

    und winwaitactive kannste dann auch weglassen und nur noch winwait verwenden, das ist nich so fehleranfällig

  • Hallo, und erst einmal danke für Hinweis (auch mit dem Spoiler); Respekt, wie schnell das hier geht!:Zum Problem: Hatte jetz das auslesen des Info-Fensters mit

    $var = ControlGetText("Informationen","","TJSTaskDialogForm")
    MsgBox(0, "Text read was:", $var) ; Update auswertent:

    probiert, funktioniert aber natürlich nicht (funktioniert schon, zeigt logischerweise nix an *gg*), aber das Problem ist, das man auch mit dem AutoIt-Info-Tool nichts raus bekommt, was man im Infofenster ansprechen könnte (keine ID, keine Classname, etc.). Gibt es da noch einen Trick, wie man den Text trotzdem bekommen kann? Und falls doch nicht, sollte wenigstens die If-Abfrage funktionieren, klappt aber auch nicht? Es kommt immer die Meldung Updates sind ok, auch wenn eigentlich gar keine verfügbar sind - wo ist da mein Fehler? Danke für die Hilfe.
    Manne. ?(