Форум: "WinAPI";
Текущий архив: 2002.03.11;
Скачать: [xml.tar.bz2];
ВнизКак получить HWND задачи? Найти похожие ветки
← →
Milz (2002-01-11 10:27) [11]Вот пример получения списка всех окон в системе с сопутствующей информацией, выдели нужное по имеющейся информации (+ см. TProcessEntry32).
uses tlhelp32;
procedure TAppMainForm.UpdProcList;
label lbCont;
var
FindWnd : hWnd;
buff: ARRAY [0..127] OF Char;
str:string;
hSn: THandle;
FindWProcID:DWORD;
lppe: TProcessEntry32;
begin
Proclist.Clear;
//Делаем снимок процессов
hSn := CreateToolHelp32Snapshot(TH32CS_SNAPPROCESS ,0);
// перебираем список окон
FindWnd := GetWindow(Handle, gw_HWndFirst);
while FindWnd <> 0 do begin
// ID окна
str := IntToHex(FindWnd,8);
// Заголовок окна
GetWindowText(FindWnd, buff, sizeof(buff));
str:= str + " " + StrPas(buff);
// ID процесса, открывшего данное окно
GetWindowThreadProcessId(FindWnd,@FindWProcID);
str:= str + " [" + IntToHex(FindWProcID,8);
// Имя файла процесса, открывшено данное окно
//Перебираем список всех процессов и находим относящийся к данному окну
if Process32First(hSn, lppe) then
repeat
//Сравниваем ID и получаем имя ехе и путь
if lppe.th32ProcessID = FindWProcID then begin
str:= str + " " + ExtractFileName(lppe.szExeFile) + "]";
goto lbCont;
end;
until not Process32Next(hSn, lppe);
lbCont:
Proclist.Items.AddObject(str,tObject(FindWnd));
FindWnd := GetWindow(FindWnd, gw_hWndNext);
end;
CloseHandle(hSn);
Proclist.ItemIndex := 0;
end;
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2002.03.11;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.004 c