检查现有流程

时间:2012-06-10 09:26:30

标签: c++ mfc process

我编写代码并使用MFC。 我想检查过程是否存在。

例如:

if (myProcess.exe exists)
  do something
else
  do something else

我该怎么做?

谢谢

4 个答案:

答案 0 :(得分:1)

使用命名互斥:

在节目开始时:

HANDLE hMutex = CreateMutex(NULL, TRUE, "Your program name");
if (GetLastError() == ERROR_ALREADY_EXISTS)
{
    // Process already running.
    CloseHandle(hMutex);
}
else
{
    // No process running.
}

在节目结束时:

if (hMutex)
{
    CloseHandle(hMutex);
    hMutex = NULL;
}

答案 1 :(得分:0)

答案 2 :(得分:0)

该进程可以将其进程ID存储在文件中。在正常退出时,删除该文件。

在下一次启动时,进程可以查看文件是否存在,如果存在,则可以读取该文件,并检查该进程ID。

答案 3 :(得分:0)

尝试在包含Psapi.h后立即添加此行:

#pragma comment(lib, "psapi.lib")

也尝试这个:

#pragma comment(lib, "kernel32.lib")