Головна »»» C++ Builder

Отримати список активних процесів cpp builder

//--------------------------------------------------------
// Получить список активных просессов 
// возврат: заполняет список информацией вида 
// Win2k 
// [SYSTEM PROCESS] 
// SYSTEM 
// SERVICES.EXE 
// MIRANDA32.EXE 
// BCB.EXE 
// 
// Win98 
// C:WINDOWSSYSTEMKERNEL32.DLL 
// C:WINDOWSSYSTEMMSGSRV32.EXE 
// C:WINDOWSSYSTEMSPOOL32.EXE 
// 
//--------------------------------------------------------
#include <tlhelp32.hpp> 
 
PACKAGE void __fastcall GetActiveAppList (TStringList *slist) 
{ 
if (!slist) return; 
 
slist->Clear(); 
 
TProcessEntry32 prj; 
prj.dwSize = sizeof(PROCESSENTRY32); 
 
HANDLE hss = CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0); 
if (((int)(hss)) == (-1)) return; 
 
AnsiString fname; 
try { 
for (bool loop = Process32First(hss, &prj); loop;
 loop = Process32Next(hss, &prj)) 
{ fname = AnsiString(prj.szExeFile).Trim().UpperCase(); 
if (fname.IsEmpty()) continue; 
slist->Add(fname); 
} 
} // try 
catch (...) { slist->Clear(); } 
 
CloseHandle(hss); 
} 
 
//--------------------------------------------------------
 
void __fastcall TF_Main::BitBtn1Click(TObject *Sender) 
{ 
TStringList *slist = new TStringList(); 
try { GetActiveAppList(slist); Mem_Info->Lines->Text = slist->Text; } 
__finally { delete slist; } 
} 
//--------------------------------------------------------
 
21.12.2012
2406 переглядів