汉兰达的缺点在哪里:C++(Builder)中如何知道本机上某一程序正在运行?

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/28 17:27:28
在C++Builder中如果查询某一可执行文件正在运行?

// sProcName为待检测的可执行应用程序名称
// 返回true说明程序在运行,false未运行
bool GetProcList(String sProcName)
{
HMODULE hUser32;

if( (hUser32=GetModuleHandle("user32"))==NULL )
return -1;

HANDLE snapshot;
if( (snapshot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0))==NULL )
{
FreeLibrary(hUser32);
return -2;
}

sProcInfo *procInfo;
PROCESSENTRY32 processinfo;
processinfo.dwSize = sizeof(processinfo);
flag = Process32First(snapshot, &processinfo);
while( flag )
{
if( processinfo.szExeFile==sProcName )
{
CloseHandle(snapshot);
FreeLibrary(hUser32);
return true;
}
flag = Process32Next(snapshot, &processinfo);
}

CloseHandle(snapshot);
FreeLibrary(hUser32);

return false;
}