Auslesen, wann Desktop im Focus ist, bzw. kein Fenster aktiv

  • Hallo Community,

    eigentlich dachte ich, ich kann autoIT ein bisschen, aber bei diesem Problem stehe ich auf dem Schlauch.

    Ich möchte prüfen, ob kein Fenster, also der Desktop aktiv ist.
    Mit WinActive etc kann ich immer nur prüfen ob ein bestimmtes Fenster im Fokus ist, aber ob keines ist, da hab ich einfach keine Idee.

    Vielen Dank,
    Saft

    Einmal editiert, zuletzt von Saft (12. Januar 2011 um 12:18)

  • Meinst du mit Aktiv, dass kein Fenster in irgendeiner Form geöffnet ist, oder das keins im Focus steht?

  • [autoit]

    $Fenster = WinList()
    For $i = 1 to $Fenster[0][0]
    If $Fenster[$i][0] = "" AND Sichtbar($Fenster[$i][1])=0 Then
    FensterOffen()
    Exit
    EndIf
    Next

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

    Func Sichtbar($handle)
    If BitAnd( WinGetState($handle), 2 ) Then
    Return 1
    Else
    Return 0
    EndIf
    EndFunc

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

    Func FensterOffen()
    MsgBox(0, "Aktion", "Aktion!")
    EndFunc

    [/autoit]

    Ein Auszug aus der Hilfe ein wenig bearbeitet.
    Sollte eigentlich funktionieren, doch bei Win 7 werden Titel genannt, die auch im Tray existieren.
    Vielleicht klappt es ja bei dir! :)

  • Ich verwende XP, daher ist das kein Problem.

    Ich habe noch einen Sleep drüber gesetzt, das Script gestartet und alle Fenster minimiert, darauf kommt die MessageBox.
    Sie kommt allerdings auch, wenn ich ein Fenster aktiv habe, scheint also leider nicht zu klappen :(

  • [autoit]

    If WinActive("Desktop") Then MsgBox(64, "", "Kein Fenster ist aktiv")

    [/autoit]

    Das ist jetzt nicht dein ernst oder? :D

    Gut das ich wieder den komplizierten weg genommen hab. :D