$ProcessName = "qip.exe" ;Пытаемся получить массив с заголовками окон основываясь только лишь на имени процесса... $TitleArr = _WinGetTitleByPID($ProcessName, 1) If @error = 1 Then MsgBox(48, "Внимание", "Процесс <" & $ProcessName & "> не существует.") ElseIf @error = 2 Then MsgBox(48, "Внимание", "Процесс <" & $ProcessName & "> не имеет окон.") ElseIf IsArray($TitleArr) Then For $i = 1 To $TitleArr[0] ;Если найдены заголовки окон, показываем/активируем и закрываем их. If $TitleArr[$i] <> "" Then WinSetState($TitleArr[$i], "", @SW_SHOW) WinActivate($TitleArr[$i]) WinClose($TitleArr[$i]) EndIf Next EndIf Func _WinGetTitleByPID($iPID, $nArray = 0) If IsString($iPID) Then $iPID = ProcessExists($iPID) If Not $iPID Then Return SetError(1, 0, 0) Local $aWList = WinList(), $sHold For $iCC = 1 To $aWList[0][0] If WinGetProcess($aWList[$iCC][1]) = $iPID Then If Not $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(2, 0, 0) EndFunc |