您的位置:首页 > 其它

利用互斥控制程序只有一个运行实例

2010-11-06 09:31 357 查看
bool CheckOneInstance(LPCTSTR mutexName)
{
HANDLE hOnceRunMutex ;
wstring strClassName= mutexName;
bool bFind = false;
hOnceRunMutex = OpenMutex(MUTEX_ALL_ACCESS,FALSE,strClassName.c_str());
if(hOnceRunMutex==NULL)
{
bFind = false;
hOnceRunMutex=CreateMutex(NULL,TRUE,strClassName.c_str());
}
else
{
bFind = true;
}
return !bFind;
}

int _tmain(int argc, _TCHAR* argv[])
{

if (CheckOneInstance(L"mytest"))
{
cout << "运行成功" << endl;
}
else
{
cout << "运行失败" << endl;
}

getchar();
return 0;
}


 

由于互斥对象是内核对象,因此可以跨进程访问,作为控制程序只有一个运行实例的手段。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  null access