程序逻辑
首先程序利用OpenMutex
打开一个互斥体句柄,看返回的句柄值是否为空,如果为空就利用CreateMutex
创建一个互斥体,当程序第二次打开时,互斥体句柄存在,便可以判断程序已经在运行
具体代码
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
int main()
{
HANDLE hMutex = OpenMutex(MUTEX_ALL_ACCESS, FALSE, L"ZC");
if (hMutex == NULL)
{
CreateMutex(NULL, NULL, L"ZC");
}
else
{
MessageBox(NULL, L"程序已经在运行", 0, 0);
return 0;
}
printf("程序进行中");
system("pause");
return 0;
}
效果显示