![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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. |
|
#2
|
||||
|
||||
|
Char и WideChar.
|
|
#3
|
|||
|
|||
|
а что делать?
попробовал WideCharToString(me32.szExePath) но пишет несовместимость типов array and widechar |
|
#4
|
||||
|
||||
|
Проверял в 7-ке и XE2, нормально работает:
Код HTML:
|