如何使一个程序运行唯一实例
2017-10-11 14:28
330 查看
如果需要某个程序只运行唯一一个实例,可以通过互斥量来实现
首先创建一个命名互斥量,如果该名称的互斥量已经被创建,则GetLastError()返回ERROR_ALREADY_EXISTS,
只要确保你的程序创建的互斥量的命名唯一,则可断定已经有该程序的实例存在,简单的代码如下
首先创建一个命名互斥量,如果该名称的互斥量已经被创建,则GetLastError()返回ERROR_ALREADY_EXISTS,
只要确保你的程序创建的互斥量的命名唯一,则可断定已经有该程序的实例存在,简单的代码如下
int main(int argc, char *argv[]) { HANDLE mutex = ::CreateMutex(nullptr, true, TEXT("MutexTest")); if(!mutex) { return 1; } if(GetLastError() == ERROR_ALREADY_EXISTS) { //注:如果另一个程序也创建了"MutexTest"的互斥量,并且已经运行,则GetLastError()也会返回ERROR_ALREADY_EXISTS ::MessageBox(nullptr,TEXT("XXX正在运行"),TEXT("警告"),MB_OK); CloseHandle(mutex); return 1; } CloseHandle(mutex); return 0; }
相关文章推荐
- C#建立了一个windows程序,如何防止多个程序实例运行?
- 如何让一个程序只有一个运行实例
- c++ Builder中如何让程序只运行一个实例
- 如何统计一个程序打开的实例个数,及当前在运行的个数
- 如何让Windows程序只运行一个程序实例?
- FCL小应用系列-----------如何使得程序只能有一个实例运行?
- 如何让程序只运行一个实例(转)
- 如何让程序只有一个实例运行(用tftp时的感想)?
- 如何使程序只运行一个实例
- C#如何判断我的程序已经有一个实例正在运行
- 如何让Java程序只运行一个实例
- 如何让程序只运行一个实例(VC)
- MFC程序唯一运行判断(只能运行一个实例)
- c# Winform 如何实现程序只能同时运行一个实例
- 使程序只能运行一个唯一的实例
- 如何让程序只运行一个实例(VC)
- 在VC++实现控制程序只运行唯一一个实例
- .net中如何只允许运行一个程序实例
- 如何让程序只运行一个实例
- 程序只运行一个实例