您的位置:首页 > 其它

用命名内核对象判断程序是否有实例正在运行

2017-01-21 10:58 387 查看
命名内核对象可以进程之间共享句柄

通过让进程每次运行创建一个命名内核对象,判断创建是否成功

用GetLastError()获得错误代码,即可判断程序是否有实例正在运行

代码页比较简单,不做过多描述,详情参考《windows核心编程》

#include <iostream>
#include <windows.h>

int main()
{
HANDLE hMutex = CreateMutex( NULL, false, "unique");

//但是这没有达到共享,只能检测是否有实例在运行
if ( ERROR_ALREADY_EXISTS == GetLastError() )
{
std::cout << "已有一个实例在运行" << std::endl;
goto ERR;
}
std::cout << "没有实例正在运行" <<std ::endl;

ERR:getchar();
CloseHandle( hMutex );
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  内核 对象 实例 windows