Форум: "WinAPI";
Текущий архив: 2002.01.08;
Скачать: [xml.tar.bz2];
ВнизМастера, помогите.. Найти похожие ветки
← →
YUS (2001-11-01 03:13) [0]Мастера, подскажите где ошибка? Нужно получить список окон и
имена ехе файлов.
uses tlhelp32;
procedure TForm1.Button2Click(Sender: TObject);
var
Window:hWnd; hSn: THandle; lppe: TProcessEntry32;
buffer: array [0..127] of char; ht, hProc: Cardinal;
begin
//Ищем хендл верхнего окна
Window:=GetForegroundWindow;
repeat
if (Window<>Application.Handle) and
(GetWindowText(Window,buffer,sizeof(buffer))<>0)
then begin
//Ищем ID процесса
ht := GetWindowThreadProcessId(Window,@hProc);
//Делаем снимок процесса
hSn := CreateToolHelp32Snapshot(TH32CS_SNAPPROCESS ,hProc);
//Получаем список всех процессов
if Process32First(hSn, lppe) then
repeat
//Сравниваем ID и получаем имя ехе и путь ????????????????
if lppe.th32ProcessID = ht then
begin
GetWindowText(Window,buffer,sizeof(buffer));
with ListView1.Items.Add do begin
Caption := buffer;
SubItems.Add(lppe.szExeFile);
end;
end;
until not Process32Next(hSn, lppe);
CloseHandle(hSn);
end;
//Ищем следующее окно
Window:= GetNextWindow(window,GW_HWNDNEXT);
until Window =0;
end;
← →
troits (2001-11-01 12:54) [1]Так ,навскидку :
есть:
if lppe.th32ProcessID = ht then
должно быть
if lppe.th32ProcessID = hProc then
Да, в CreateToolHelp32Snapshot hProc передавать не нужно.
← →
YUS (2001-11-01 16:40) [2]troits,
спасибо за направление все получилось.
Действительно if lppe.th32ProcessID = hProc then , а ht-ненужен
в ht := GetWindowThreadProcessId(Window,@hProc); ,но без CreateToolHelp32Snapshot не работает
← →
troits (2001-11-01 17:18) [3]Я хотел сказать, что в функции
CreateToolHelp32Snapshot
при первом параметре TH32CS_SNAPPROCESS
второй игнорируется.
Можно поставить, например, 0.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2002.01.08;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.007 c