Email versenden (ehem.: Warten bis Button aktiv ist / Window Info incorrect??)

  • Grüße an die Füße,

    habe folgendes Problem:

    ich möchte bei der Installation einer Software so lange warten bis der ausgegraute Button aktiv wird und man ihn drücken kann. (Bei manchen Installationen dauert das ne zeitlang weil er noch was laden muss)

    Dazu habe ich folgenden Code: (Titel und Text sind jetzt nur als Platzhalter gedacht, da ich das bei mehreren Progs benutze)

    Spoiler anzeigen
    [autoit]

    Do
    Sleep(10)
    Until (ControlCommand("Titel", "Text", 13969, "IsVisible", "") And ControlCommand("Titel", "Text", 13969, "IsEnabled", ""))
    ControlClick("Titel", "Next", 13969)

    [/autoit]

    Jedoch zeigt er keine Reaktion! zu Testzwecken habe ich mir eine MsgBox in die Schleife gebaut, aber selbst die hat er nicht ausgegeben, also springt er gar nicht erst in die Schleife.

    Bei der Installation eines anderen Programms, funktioniert mein Script wunderbar, bis auf eine Stelle, da klickt er auf einmal nichtmehr auf den Button...warum auch immer.

    Kann es sein dass die Daten von "Auto It Window Info" nicht immer correct sind?? von dort habe ich die Titel, Texte und ID's übernommen, es funktioniert auch wunderbar, bis auf diese 2 Stellen...da versagt es.

    Welche Möglichkeiten habe ich noch um auf die Buttons zuzugreifen?

    greetz Blade

    Weil Denken die schwerste Arbeit ist, die es gibt, beschäftigen sich auch nur wenige damit.

    Einmal editiert, zuletzt von Blade (26. März 2010 um 15:47)

  • Haste dir schonmal die Hilfe zu ControlCommand durchgelesen? ControlCommand sendet nur Befehle an das Control. Was erzähl ich da, das ist doch Schwachsinn. ^^
    Haste schonmal geguckt ob sich irgendwo der Text ändert, wenn der Button enable ist? Oder hat es dann evtl. den Focus?

  • nein, der Text ändert sich nicht.

    Hatte auch schon eine Fallunterscheidung drin, so dass er erst prüft ob der Button da ist und dann ob er aktiv ist. jeweils mit einer MsgBox Ausgabe zur Überprüfung.

    Aber es wurde keine MsgBox ausgegeben. Als ob der Window Titel ihm nicht passen würde.

    Seh ich das richtig, dass wenn ich über die Class gehen will, ich das wie folgt schreiben müsste?

    [autoit]

    ControlCommand("[CLASS:#32770]", "", 13969, "IsVisible", "")

    [/autoit]

    die #32770 habe ich aus dem Window Info tool unter >>>> Window <<<<

    Weil dies funzt leider auch nicht

    greetz Blade

    Weil Denken die schwerste Arbeit ist, die es gibt, beschäftigen sich auch nur wenige damit.

  • Ist denn die ID immer gleich? Ich hatte es schonmal das wenn ich eine Installation starte eine andere ID hatte, als davor als ich sie gestartet habe.

  • ja ist immer die 13969... egal ob aktiv oder inaktiv

    gibts da noch andere Möglichkeiten? das muss doch irgendwie zu schaffen sein...

    greetz Blade

    Weil Denken die schwerste Arbeit ist, die es gibt, beschäftigen sich auch nur wenige damit.

  • Ist das zufällig Kaspersky? Weil die Installation kannst du nicht automatisieren, da haben sich welche schon einen abgequält (ich auch :cursing: ).

  • hehe... nein ist es nicht.

    Aber sehe ich es dann richtig, dass sich unter umständen nicht alle installationen automatisieren lassen?

    Woran scheitert es bei kaspersky?

    weil hier kann ich ja die Fenster vorher ohne Probleme bedienen... nur nicht das eine.

    greetz Blade

    Weil Denken die schwerste Arbeit ist, die es gibt, beschäftigen sich auch nur wenige damit.

    Einmal editiert, zuletzt von Blade (26. März 2010 um 15:37)

  • Da dies wohl leider so nicht klappt, habe ich eine andere Idee.

    Ich würde dann gerne an der Stelle der Installation eine Email versenden, um den User darüber zu informieren dass die Installation jetzt hängt und er weiter machen muss per Hand.

    Dabei bin ich schnell auf den Befehl "_INetSmtpMail()" gestoßen.

    Problem an der Sache: ich habe keine Ahnung welche SMTP Adresse die hier in der Firma verwenden.

    Geht das auch ohne? Bzw. kann ich den SMTP irgendwie herausfinden? Email Client ist Lotus Notes.

    greetz Blade

    Weil Denken die schwerste Arbeit ist, die es gibt, beschäftigen sich auch nur wenige damit.