BOOL CTbsDlg::IsOpen(CString strFindFile )
{
PROCESSENTRY32 pe32;
pe32.dwSize = sizeof(pe32);
HANDLE hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if( hProcessSnap == INVALID_HANDLE_VALUE )
{
return FALSE;
}
BOOL bMore = Process32First( hProcessSnap,&pe32 );
while(bMore)
{
bMore = Process32Next( hProcessSnap,&pe32 );
CString strExeFile;
strExeFile.Format("%s",pe32.szExeFile);
if( strExeFile.CompareNoCase(strFindFile) == 0 )
{
CloseHandle( hProcessSnap );
return TRUE;
}
}
CloseHandle( hProcessSnap );
return FALSE;
}
上面只是判断指定EXE文件名进程是否启动,若要判断指定路径EXE进程是否启动则要用MODULEENTRY32。如下:
BOOL CTbsDlg::IsOpen( CString strFindFi

这个代码示例展示了如何使用Windows API来判断一个进程是否已经启动。通过创建工具帮助快照并遍历进程,可以检查指定EXE文件名或完整路径的进程是否存在。如果需要根据路径判断,`IsOpen`函数会结合`GetExePath`来获取进程模块的路径进行匹配。

1352

被折叠的 条评论
为什么被折叠?



