Получение списка процессов в Windows 9x и NTDelphi , Программа и Интерфейс , Процессы и СервисыПолучение списка процессов в Windows 9x и NT
Автор: Евгений Пелега { **** UBPFD *********** by delphibase.endimus.com **** >> Получение списка процессов в Windows 9x/NT Определяет список модулей, запущенных в настоящее время в системе, и заносит их имена в список TStrings. На Win9x использует функции ToolHelp32, на NT/2000/XP - библиотеку PSAPI.dll Зависимости: Windows, Classes, PSAPI, TlHelp32 Автор: Евгений Пелега, drpass@mail.ru, Донецк Copyright: Евгений Пелега Дата: 26 апреля 2002 г. ***************************************************** } procedure 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; Пример использования: procedure TForm1.Button1Click(Sender: TObject); var tmp: TStrings; begin tmp := memo1.Lines; GetProcessList(tmp); end; В статье описывается процедура для получения списка процессов в Windows 9x и NT, которая использует функции ToolHelp32 или библиотеку PSAPI.dll. Комментарии и вопросыМатериалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Процессы и Сервисы ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |