Herausfinden welcher Prozess vom Anwender gerade benutzt wird

  • Ist es mit Autoit möglich herauszubekommen welchen Prozess der Anwender gerade benutzt? Beispiel: Zuerst öffne ich den Internet Explorer und dann den FireFox. Nun lass ich den FireFox aber offen und wechsel wieder zum Internet Explorer. Kann man nun mit Autoit herausfinden, dass der Internet Explorer gerade vom Benutzter verwendet wird?

    Einmal editiert, zuletzt von llllll (26. Oktober 2008 um 15:17)

  • Hmm, also ich DENKE welcher Prozess benutzt wird, ist schwer, es werden ja meistens mehrere Prozesse gleichzeitig "verwendet".

    Aber man könnte das aktive Fenster rausfinden.

    Evtl. per WinList eine komplette Liste aller Fenster holen und dann per Schleife durchgehen und per WinGetState die Eigenschaften prüfen.

  • Ich hab jetzt einen Weg mit beiden Sachen genommen:

    [autoit]

    #include <Process.au3>

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

    sleep(5000)

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

    $iPID = WinGetProcess("")
    $name = _ProcessGetName($iPID)
    MsgBox(0, "Details", "Titel=" & $name)

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

    $list = WinList()
    For $i = 1 to $list[0][0]
    If $list[$i][0] <> "" AND IsVisible($list[$i][1]) Then
    MsgBox(0, "Details", "Titel=" & $list[$i][0] & @LF & "Fenster-ID=" & $list[$i][1])
    EndIf
    Next
    Exit

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

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

    [/autoit]

    Damit finde ich einmal heraus welches Programm das aktuelle Fenster ausführt und welchen Titel das Fenster bekommen hat.