windows单实例的办法

简介: windows单实例的办法

有的程序需要单实例。


 除了互斥之外,其实还要关注两个问题(这个是本文特有的,是实实在在工作中遇到的):


程序被杀、崩溃之后,再次启动是否正确。

多用户时,是否也是一个实例?如果一个用户一个实例,那么关键值就要加上用户名。

#include <windows.h>
int main(int argc, char *argv[])
{
    HANDLE hMutex = CreateMutex(NULL, FALSE, "quantum7");
    DWORD dwError = GetLastError();
    if (ERROR_ALREADY_EXISTS == dwError || ERROR_ACCESS_DENIED == dwError)
    {
        // 已经有实例了,退出。
        return;
    }
    //运行实例,做事。
    //退出时的操作。实际测试中发现,进程杀死,再次启动是正确的。所以应该是进程退出后自动删除。
    CloseHandle(hMutex);
    return 0;
}


目录
相关文章
|
Windows
WINDOWS获得当前执行程序路径的办法
WINDOWS获得当前执行程序路径的办法
266 0
|
Windows
windows单实例的办法
windows单实例的办法
87 0
|
Java Linux Windows
Java 对windows/linux不同路径的处理办法
本文目录 1. 概述 2. 跨平台的路径写法
886 0
|
安全 Windows
高危Windows系统 SMB/RDP远程命令执行漏洞 手工修复办法
 1、Windows Update更新补丁方式: 更新方法:点击“开始”->“控制面板”->“Windows Update” ,点击“检查更新”-“安装更新”:   2、检查安装结果: 点击“查看更新历史记录”,检查安装的补丁: 3、重启系统生效 漏洞参考: https://blogs.
1446 0
|
安全 关系型数据库 数据安全/隐私保护
windows远程桌面连接问题处理办法
1、远程桌面连接发生身份验证错误,要求的函数不受支持:可能由于CredSSP加密Oracle修正开始--我的电脑右键属性-远程设置 不要选择---仅允许运行使用网络级别身份验证的远程桌面的计算机连接 2、桌面远程--出现内部错误:打开运行 --输入gpedit.
2819 0
下一篇
无影云桌面