Hallo Forum,
Dieses Skript prüft alle Prozesse ob diese minimiert oder aktiviert sind.
Oben steht eine Liste falls man unten die BitAnd ändern möchte.
Ich hoffe das Skript gefällt euch und auf Positive rückmeldung
Updaet: 20:35Uhr keine antwort ?
Spoiler anzeigen
;~ 1 = Fenster existiert.
;~ 2 = Fenster ist sichtbar.
;~ 4 = Fenster ist freigegeben.
;~ 8 = Fenster ist aktiv.
;~ 16 = Fenster ist minimiert.
;~ 32 = Fenster ist maximiert.
#include <array.au3>
#include <Process.au3>
Global $list = ProcessList()
For $i = 1 To $list[0][0]
$state = WinGetState(_WinGetByPID($list[$i][1]), "")
$processString = "ProcessName: " & $list[$i][0] & @CRLF
$processString &= "ProcessID: " & $list[$i][1] & @CRLF
$processString &= "ProcessPath: " & _GetProcessPath($list[$i][1]) & @CRLF
If BitAND($state, 16) Then ; Fenster Modus siehe oben (minimiert)
MsgBox(0, $list[$i][0], "Fenster ist minimiert" & @CRLF & @CRLF & $processString)
EndIf
If BitAND($state, Then ; Fenster Modus siehe oben (aktiviert)
MsgBox(0, $list[$i][0], "Fenster ist Aktiviert" & @CRLF & @CRLF & $processString)
EndIf
If BitAND($state, 32) Then ; Fenster Modus siehe oben (maximiert)
MsgBox(0, $list[$i][0], "Fenster ist Maximiert" & @CRLF & @CRLF & $processString)
EndIf
Next
Func _GetProcessPath($GPPpid)
$colItems = ""
$strComputer = "localhost"
$objWMIService = ObjGet("winmgmts:\\localhost\root\CIMV2")
$colItems = $objWMIService.ExecQuery('SELECT * FROM Win32_Process WHERE processid = ' & $GPPpid, "WQL", 0x10 + 0x20)
If IsObj($colItems) Then
For $objItem In $colItems
Return $objItem.ExecutablePath
Next
Else
Return ""
EndIf
EndFunc ;==>_GetProcessPath
Func _WinGetByPID($iPID, $nArray = 1)
If IsString($iPID) Then $iPID = ProcessExists($iPID)
Local $aWList = WinList(), $sHold
For $iCC = 1 To $aWList[0][0]
If WinGetProcess($aWList[$iCC][1]) = $iPID And _
BitAND(WinGetState($aWList[$iCC][1]), 2) Then
If $nArray Then Return $aWList[$iCC][0]
$sHold &= $aWList[$iCC][0] & Chr(1)
EndIf
Next
If $sHold Then Return StringSplit(StringTrimRight($sHold, 1), Chr(1))
Return SetError(1, 0, 0)
EndFunc ;==>_WinGetByPID