如果一个进程没有运行,我不应该显示某些上下文菜单选项?我正在检查进程是否正在运行或不使用进程名称。
但问题是,进程名称在不同的 Windows 平台上显示方式不同。
即windows任务栏上的windows 64位进程名是“ applicationname.exe ”
某些 windows xp 机器显示与“ applica~2.exe ”相同的进程名称
请让我知道检查进程是否正在运行的一致方法?
我的开发环境是 C++ 和 Visual Studio 2010
DWORD getProcessID(const std::wstring& processName)
{
PROCESSENTRY32 info;
info.dwSize = sizeof(info);
HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);
if ( snapshot == INVALID_HANDLE_VALUE )
return 0;
Process32First(snapshot, &info);
if ( !processName.compare(info.szExeFile) )
{
CloseHandle(snapshot);
return info.th32ProcessID;
}
while ( Process32Next(snapshot, &info) )
{
if ( !processName.compare(info.szExeFile) )
{
CloseHandle(snapshot);
return info.th32ProcessID;
}
}
CloseHandle(snapshot);
return 0;
}