如何做到应用程序只运行一个实例?
WinXP + BCB6.0
开发的应用程序,如何确保只运行一个实例?
我用HANDLE HMutex=CreateMutex 方式未遂。求解!
[解决办法]
HANDLE hmute=CreateMutex(NULL,FALSE,"BCB"); if(GetLastError()==ERROR_ALREADY_EXISTS) { Application->MessageBoxA("程序已运行","提示",MB_OK);//此处你可以做其他处理 如激活已运行的实例 return 1; }//记得CloseHandle:)
[解决办法]
CreateMutex是可行的,看你的代码是否有问题
[解决办法]
CreateMutex可行的,要看你代码放的位置,也就是说如果你放的位置在实例已经出来了就没有意义了。
[解决办法]
Google "site:csdn.net Application CreateMutex"
[解决办法]
(1)、 h_mutex1=CreateMutex(NULL,FALSE,"mutex_for_readcount");//创建一个互斥体 (2)、HANDLE m_hMutex = CreateMutex(NULL, FALSE, "Sample07");// 检查错误代码 if (GetLastError() == ERROR_ALREADY_EXISTS) { // 如果已有互斥量存在则释放句柄并复位互斥量 CloseHandle(m_hMutex); m_hMutex = NULL; // 程序退出 return FALSE; }; //上面这段代码演示了有名互斥量在进程互斥中的用法。代码的核心是CreateMutex()对有名互斥量的创建。 CreateMutex() 用于有独占要求的程序 (在其进程运行期间不允许其他使用此端口设备的程序运行,或不允许同名程序运行)。