Benutzereingaben unterbinden, Winwaitactive Timeout - Abbruch Skript

  • Hallo...

    Ich als kompletter Neuling beschäftige mich gerade damit, eine Installationsroutine für eine Druckerinstallation zu skripten, danach ein paar Einstellungen des Druckers zu treffen etc.

    Gibt es eine Möglichkeit, zu verhindern, dass der Benutzer zwischendurch woanders hinklickt und damit den Focus von den nacheinander auftretenden Fenstern nimmt?

    Danke und Gruß,

    Tom

    2 Mal editiert, zuletzt von Kirchtom (25. März 2008 um 14:46)

  • Hi Kirchtom

    Erstmal herzlich willkommen. Zu Deinem Problem kann ich Dir nur empfehlen weniger mit MouseClick() und Send() zu arbeiten, die nur das aktive Fenster bedienen, sondern mit ControlSend() und ControlClick() zu arbeiten, die sich davon weniger irritieren lassen. Es ist zwar bei der Erstellung etwas mehr Arbeit, aber langfristig wird es stabiler funktionieren. Und außerdem schau mal in die Funktion WinActivate(), mit der Du genau vor Deiner Aktion bestimmen kannst welches Fenster aktiv ist.

    Gruß,

    TrueMu

  • Vielen Dank erstmal für Eure Hilfe, damit komme ich schon eine ganze Ecke weiter.

    Jetzt habe ich ein anderes Problem, per Suchfunktion kam ich nicht weiter:

    Dass ich bei Winwaitactive() ein Timeout setzen kann ist klar, allerdings wird das Skript - nachdem das Timeout ausgelöst wurde - weiter abgearbeitet. Ich hätte aber gerne die Variante, dass wenn ein Timeout ausgelöst wurde, eine Funktion aufgerufen wird, in der dann z.B. die Eingabeblockade aufgelöst, eine Meldung ausgegeben und vor allem, die weitere Abarbeitung des Skripts abgebrochen wird, und genau letzteres klappt nicht...


    Hat jemand eine Idee?

    Danke... Tom

    • Offizieller Beitrag

    Hi,

    könnte man so strukturieren:

    Spoiler anzeigen
    [autoit]

    If WinWaitActive("Adobe Reader", "Testseite", 30) = 1 Then
    Send("!{F4}")
    Else
    abort("Testseite")
    EndIf

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

    Func abort($optFehler)
    BlockInput(0)
    Switch $optFehler
    Case "Testseite"
    MsgBox(16, "Installation fehlgeschlagen", "Bitte kontaktieren Sie Ihren Helpdesk", 10)
    Case "Wasweißich"
    Case Else
    EndSwitch
    Exit (0)
    EndFunc ;==>abort

    [/autoit]

    Mega

  • Wunderbar, vielen Dank Euch beiden, das Skript läuft sauber und ich hoffe alle Evantualitäten, die bei der Installation auftreten können, damit abfangen zu können.

    Gruß,

    Tom