Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.05.27;
Скачать: CL | DM;

Вниз

Список запускаемых прог на компе   Найти похожие ветки 

 
Vilux   (2002-03-26 02:30) [0]

Народ, подскажите как написать прогу, чтобы она отлавливала названия запускаемых файлов на компе?


 
Alx2 ©   (2002-03-26 07:51) [1]

Вот список запущенных. Можно не объявлять используемые функции, если подключить модуль psapi.

Function GetAllProcesses(Strs: TStringList): Boolean;
Type
TEnumProcesses = Function (lpidProcess: LPDWORD; cb: DWORD; Var cbNeeded: DWORD): BOOL Stdcall;
TEnumProcessModules = Function (hProcess: THandle; lphModule: LPDWORD; cb: DWORD; Var lpcbNeeded: DWORD): BOOL Stdcall;
TGetModuleFileNameExA = Function (hProcess: THandle; HMODULE: HMODULE; lpFileName: PAnsiChar; nSize: DWORD): DWORD Stdcall;
Var
EnumProcesses : TEnumProcesses;
EnumProcessModules : TEnumProcessModules;
GetModuleFileNameExA: TGetModuleFileNameExA;
hPSAPI : THandle;
Counter, Counter1 : LongWord;
PIDs : Array[0..1023] Of DWORD;
pbNeeded : DWORD;
ProcHandle : THandle;
ModHndls : Array[0..1023] Of DWORD;
mbNeeded : DWORD;
ModulePath : String;
Begin
Result := False;
hPSAPI := LoadLibrary("PSAPI.dll");
If hPSAPI < 32 Then
Begin
Result := False;
Exit
End;
EnumProcesses := GetProcAddress(hPSAPI, "EnumProcesses");
EnumProcessModules := GetProcAddress(hPSAPI, "EnumProcessModules");
GetModuleFileNameExA := GetProcAddress(hPSAPI, "GetModuleFileNameExA");
EnumProcesses(@PIDs, Length(PIDs), pbNeeded);
For Counter := 0 To (pbNeeded Div 4) - 1 Do
Begin
ProcHandle := OpenProcess(PROCESS_QUERY_INFORMATION + PROCESS_VM_READ, False, PIDs[Counter]);
If ProcHandle <> 0 Then
Begin
If EnumProcessModules(ProcHandle, @ModHndls, Length(ModHndls), mbNeeded) Then
For Counter1 := 0 To (mbNeeded Div 4) - 1 Do
Begin
SetLength(ModulePath, MAX_PATH);
GetModuleFileNameExA(ProcHandle, ModHndls[Counter1], PChar(ModulePath), MAX_PATH);
Strs.Add(AnsiLowerCase(ModulePath));
End;
CloseHandle(ProcHandle);
End;
If Result Then break
End;
FreeLibrary(hPSAPI)
End;




Страницы: 1 вся ветка

Текущий архив: 2002.05.27;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.015 c
3-88354
Марина
2002-04-30 09:36
2002.05.27
dbiDoRestructure


4-88688
AFROLOV
2002-03-26 13:09
2002.05.27
Как обойти такую ситуацию


7-88653
Xlinuxadmin
2002-03-02 17:49
2002.05.27
Пишу небольшую говорилку, каких много в инете! Подскажите кто сталкивался, как допустим из файла брать произвольную строку Файл


3-88361
aka Andre
2002-04-15 13:59
2002.05.27
Ошибка при использовании dbExpress и MySQL


1-88399
Димок
2002-05-15 18:03
2002.05.27
Как вставить свой пункт в чужое PopuMenu?