Форум: "WinAPI";
Текущий архив: 2005.09.25;
Скачать: [xml.tar.bz2];
ВнизКак получить список запущенных приложений Найти похожие ветки
← →
Pasha L (2005-07-31 13:21) [0]Здравствуйте. Вот в чем заключается мой вопрос:
Можно ли в дельфи получить список всех запущенных в данный момент приложений? если да, то каким образом?
и ещё. все ли запущенные приложения отображаются в списке Windows Task Manager >> Processes?
← →
Eraser © (2005-07-31 13:36) [1]см. Process32First/Process32Next и CreateToolhelp32Snapshot.
← →
Pasha L (2005-07-31 13:47) [2]ясно. а каком компоненте содержатся это ф-ции?
← →
Eraser © (2005-07-31 13:55) [3]Pasha L (31.07.05 13:47) [2]
Не в компоненте, в модуле TlHelp32.
← →
Pasha L (2005-07-31 13:57) [4]спа
← →
Eraser © (2005-07-31 14:03) [5]Pasha L (31.07.05 13:57) [4]
неза
← →
TechnoDreamer © (2005-08-01 02:49) [6]Вот недавно использовал как раз:
procedure TForm1.GetProcessList(var sl: TStrings);
var
pe: TProcessEntry32;
ph, snap: THandle; //дескрипторы процесса и снимка
mh: hmodule; //дескриптор модуля
procs: array[0..$FFF] of dword; //массив для хранения дескрипторов процессов
count, cm: cardinal; //количество процессов
i: integer;
ModName: array[0..max_path] of char; //имя модуля
begin
sl.Clear;
if Win32Platform = VER_PLATFORM_WIN32_WINDOWS then
begin //если это Win9x
snap := CreateToolhelp32Snapshot(th32cs_snapprocess, 0);
if integer(snap) = -1 then
begin
exit;
end
else
begin
pe.dwSize := sizeof(pe);
if Process32First(snap, pe) then
repeat
sl.Add(string(pe.szExeFile));
until not Process32Next(snap, pe);
end;
end
else
begin //Если WinNT/2000/XP
if not EnumProcesses(@procs, sizeof(procs), count) then
begin
exit;
end;
for i := 0 to count div 4 - 1 do
begin
ph := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ,
false, procs[i]);
if ph > 0 then
begin
EnumProcessModules(ph, @mh, 4, cm);
GetModuleFileNameEx(ph, mh, ModName, sizeof(ModName));
sl.Add(string(ModName));
CloseHandle(ph);
end;
end;
end;
end;
← →
Pasha L (2005-08-02 16:01) [7]TechnoDreamer © (01.08.05 02:49) [6]
А в каком модуле искать EnumProcesses?
← →
Pasha L (2005-08-02 16:38) [8]И что такое $FFF ?
← →
n0name (2005-08-02 17:00) [9]>>Pasha L (02.08.05 16:01) [7]
PsAPI
>>Pasha L (02.08.05 16:38) [8]
Число от балды. Лучше использовать дин. массивы.
← →
Pasha L (2005-08-02 17:02) [10]Ясно. Спасибо
← →
Pasha L (2005-08-02 23:16) [11]У меня ХР. Использую вторую часть программы TechnoDreamer"а. Но что то вылезает ошибка на OpenProcess. Access violation at address 0044DB8F in module Project2.exe. Project2.exe - это моя программа
← →
Pasha L (2005-08-02 23:43) [12]У меня вопрос. Действует ли process32first и next в видоусе ХР
← →
Джо © (2005-08-03 01:06) [13]
> [12] Pasha L (02.08.05 23:43)
> У меня вопрос. Действует ли process32first и next в видоусе
> ХР
Да.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2005.09.25;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.035 c