0

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

例如:

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

我该怎么做?

谢谢

4

4 回答 4

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;
}
于 2012-06-11T14:20:15.787 回答
0

你必须枚举进程

例如

http://msdn.microsoft.com/en-us/library/windows/desktop/ms682623%28v=vs.85%29.aspx

于 2012-06-10T09:31:06.217 回答
0

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

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

于 2012-06-10T09:37:39.543 回答
0

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

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

也试试这个:

#pragma comment(lib, "kernel32.lib")
于 2012-06-10T10:54:23.950 回答