IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> windows启动单个进程实例(系统中只有一个运行实例) -> 正文阅读

[C++知识库]windows启动单个进程实例(系统中只有一个运行实例)

大家好,我是KookNut39,在CSDN写文,分享一些自己认为在学习过程中比较重要的东西,致力于帮助初学者入门,希望可以帮助你进步。感兴趣的欢迎关注博主,可以去专栏查看之前的文章,希望未来能和大家共同探讨技术。

我们写的程序一般都是可以多次运行的,就比如我随便打开的这个程序,我们一直双击,它会一直启动:
在这里插入图片描述
但是有时候哦我们只需要一个进程实例,那我们该怎么办呢?一个进程实例具体是什么时候啊?来看一下Windows的任务管理器:
在这里插入图片描述
还有我们平时用的PC版那个绿色的社交软件,只要登录一个账号之后,你每次启动进程,你都会发现打开的是已经登录的那个页面,也就是无法同时登录两个账号(ps: 特殊方法除外)。那我们自己写的程序要做到这一点,是否有难度呢?其实是比较简单的,只需要你对windows编程有一些基础的了解即可。接下啦手把手带大家写一个程序,只能启动一个实例,先说一下环境,我是拿vs写的,默认编码是UNICODE字符集,如果照着我的代码写,编译报错,可以看看字符集的问题:
我们拿简单的console程序距离,主要是说一下用法,首先我们来创建一个GUID,GUID的创建可以使用vs自带的工具,也可以自己网上去查找其它的创建方法,GUID是唯一身份标识码,就和我们身份证ID一样,唯一的。
在这里插入图片描述

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


int main(int argc, LPWSTR* argv)
{
//创建一个互斥体,带有GUID的,如果成功,则返回有效句柄值 GUID是我们通过vs刚生成的
	HANDLE mutexHandle = CreateMutexW(NULL, FALSE, L"Global\\{66451FDE-56B1-406A-9810-D6B372BAE28E}");
	if (ERROR_ALREADY_EXISTS == GetLastError()) 
	{
		if (mutexHandle) {
			CloseHandle(mutexHandle);
		}
		MessageBox(NULL, "exist", "single", NULL);
		goto exit;
	}
	std::cout << "starting" << std::endl;
exit:
	return 0;
}

最后的运行效果如下图所示:
在这里插入图片描述
好久不见,今天来完成下任务,感觉CSDN好久没更新了,今天简单的过来搞得小demo,和大家玩一玩,如果有人以为我要放大招,那可大错特错了奥!!!
大家可以尝试在这个基础之上改一下这个demo,让它变成,如果程序已经运行就把程序重新加载起来(类似刷新的效果),就好像,打开任务管理器一样的效果,祝大家修改顺利!

其中虽然代码少,但是涉及到windows开发的两个重要基础知识,句柄和互斥体对象,如果大家想了解,那我就后期更新一下这两个小知识点。

“你可以憧憬未来,但不要深陷其中,过好眼前的每一天足矣”
晚安,xdm

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-12-02 16:34:44  更:2021-12-02 16:35:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 9:54:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码