Windows下用互斥量来使程序单例运行
1 /****** 2 *名称:singleApp 3 *参数:无 4 *功能:通过试图打开一个互斥量来判断一个程序是否被实例化过 5 *****/ 6 bool QUtil::singleApp() 7 { 8 HANDLE sigleAppHandle=NULL; 9 sigleAppHandle=OpenMutexA(MUTEX_ALL_ACCESS,FALSE,MUTEX_APP); 10 if(sigleAppHandle == NULL) 11 { 12 if(GetLastError()== ERROR_FILE_NOT_FOUND) 13 { 14 //程序没有运行,创建互斥变量 15 if(CreateMutexA(NULL,FALSE,MUTEX_APP)==NULL){ 16 cout<<GetLastError()<<endl; 17 return false; 18 } 19 return true; 20 } 21 } 22 //程序已经运行 23 return false; 24 }
MUTEX_APP为一个字符串宏变量

浙公网安备 33010602011771号