Что нового

Как получить массив открытых окон по PID процесса?

ViktorSPB

Новичок
Сообщения
109
Репутация
0
Здравствуйте!
Есть функция WinList. Она возвращает массив открытых окон максимум по тексту окна.
А есть ли способ получить массив окон по заданному PID?
Смотрел http://creator-lab.ucoz.ru/load/3-1-0-19, у меня не заработало, может, из-за того, что давняя библиотека..
Помогите, пожалуйста, разобраться.
 
Автор
V

ViktorSPB

Новичок
Сообщения
109
Репутация
0
Здравствуйте, madmasles!
Спасибо, во многом это поможет.
А есть ли возможность в массиве видеть еще и название окна, как в WinList?
Мне бы это очень помогло..
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
ViktorSPB [?]
А есть ли возможность в массиве видеть еще и название окна
Попробуйте так.
Код:
#include <Array.au3>
#include <WinAPIEx.au3>

$iPID = 0;ProcessExists('process.exe')
$aTemp = _WinAPI_EnumProcessWindows($iPID, 0)
If @error Then
	MsgBox(16, 'Error', 'No Windows')
Else
	Dim $aResult[$aTemp[0][0] + 1][3] = [[$aTemp[0][0]]]
	For $i = 1 To $aTemp[0][0]
		$aResult[$i][0] = $aTemp[$i][0]
		$aResult[$i][1] = $aTemp[$i][1]
		$aResult[$i][2] = WinGetTitle($aResult[$i][0])
	Next
	$aTemp = 0
	_ArrayDisplay($aResult)
EndIf
 
Автор
V

ViktorSPB

Новичок
Сообщения
109
Репутация
0
Ну да, это понятно.
Спасибо! Если ничего другого не будет, оставляю так. Я так и поступил пока.
 

WSWR

AutoIT Гуру
Сообщения
941
Репутация
363
Случайно, не массив ли дочерних окон квика нужен?
 
Верх