![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Здравствуйте.
Вопрос вот в чём. нашел в инете функцию которая выводит список запущенных процессов и путь к ехе файлам процессов по хендлу. но функция не ко всем выводит путь Код:
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 Путь: ?????????? вместо пути выводит вопросики. а нужно получить полный список процессов, как во вкладке "процессы" в диспетчере,и пути к ним Последний раз редактировалось Admin, 26.05.2012 в 23:45. |