Здравствуйте.
Вопрос вот в чём.
нашел в инете функцию которая выводит список запущенных процессов и путь к ехе файлам процессов по хендлу.
но функция не ко всем выводит путь
Код:
function TaskManager:string;
var
Wnd,pr: hWnd;
buff: array[0..127] of Char;
pid: HINST;
me32: TModuleEntry32;
begin
Result:='';
Wnd := GetWindow(Forn1.Handle, gw_HWndFirst);
while Wnd <> 0 do begin {Не показываем:}
if (Wnd <> Application.Handle) and {-Собственное окно}
//IsWindowVisible(Wnd) and {-Невидимые окна}
(GetWindow(Wnd, gw_Owner) = 0) {-Дочернии окна}
and (GetWindowText(Wnd, buff, sizeof(buff)) <> 0) {-Окна без заголовков}
then begin
GetWindowText(Wnd, buff, sizeof(buff));
Result:=Result +#13'Программа:'+ StrPas(buff);
GetWindowThreadProcessId(wnd, @pid);
pr := CreateToolHelp32Snapshot(TH32CS_SNAPMODULE, pid);
me32.dwSize := SizeOf(me32);
Module32First(pr, me32);
Result:=Result +' Путь: '+ me32.szExePath;
CloseHandle(pr);
end;
Wnd := GetWindow(Wnd, gw_hWndNext);
end;
//Memo1.ItemIndex := 0;
end;
для примера запустил диспетчер задач но в функции выведется
Программа:Windows Task Manager Путь: ??????????
вместо пути выводит вопросики.
а нужно получить полный список процессов, как во вкладке "процессы" в диспетчере,и пути к ним