Windows开发--控制程序运行单一进程
来源:互联网 发布:python appium 编辑:程序博客网 时间:2024/06/07 11:33
实际开发中,特别是那些对系统资源(如某些硬件等)要求唯一访问的软件系统来说,仅允许一个进程的存在,这就需要对进程的数目进行严格控制,下面说明windows下的两种方法的实现。
文章转载的,懒的写了。
方法一:使用#pragma data_seg
步骤一:在应用程序的入口文件前面加上如下语句
#pragma data_seg("flag_data")int g_Count = 0;//共享数据必须初始化,否则微软编译器会把没有初始化的数据放到.BSS段中,从而导致多个进程之间的共享行为失败。#pragma data_seg()#pragma comment(linker,"/SECTION:flag_data,RWS")
步骤二:在程序启动的地方加上如下语句
if(g_Count > 0){ MessageBox(NULL, "已经启动一个应用程序", "Warning", MB_OK); return FALSE;}g_Count++;
这样,就可以限制程序只启动一次了。
方法二:使用互斥量CreateMutex
步骤一:在声明文件中声明实例变量
在MFC中对应为CxxxAPP类中:
HANDLE appInstance;步骤二:在实现文件中添加如下代码
对应MFC中的CxxxApp::InitInstance()函数中
SECURITY_ATTRIBUTES sa;sa.bInheritHandle = TRUE;sa.nLength= sizeof(sa);sa.lpSecurityDescriptor = NULL;appInstance = CreateMutex(&sa, FALSE, UNIQUE_NAME);//UNIQUE_NAME为定义的宏,此处也可以使用字符串if(GetLastError() == ERROR_ALREADY_EXISTS){MessageBox(NULL, "程序已经启动,不能重复运行!", "提示信息", MB_ICONWARNING|MB_OK);CloseHandle(appInstance);appInstance = NULL;return FALSE;}
阅读全文
1 0
- Windows开发--控制程序运行单一进程
- Windows下实现程序单一运行
- LINUX 进程控制程序设计
- Linux进程控制程序设计
- 控制程序唯一运行
- 控制程序运行一次
- 控制程序运行一次
- 利用事件 控制程序运行
- 控制程序自动运行
- 安装音量控制程序 WINDOWS
- windows服务+托盘控制程序
- 控制程序运行实例的个数
- windows mobile进程查看器开发(一)——获得当前运行进程的信息
- Windows服务之服务控制程序
- 实现单一进程
- C#程序单一运行
- c# 单一程序运行
- 用C#开发串口控制程序
- Win10如何安装vs2015+cocos2d-x 3.9开发环境?安装配置教程分享
- 数组逆序
- 数据结构(第二天)单向循环链表的创建,插入元素,(删除、查询元素跟单链表操作基本一致)
- Java重载时,存在多个匹配的方法该如何选择?
- 矩阵的奇异值与特征值有什么相似之处与区别之处?
- Windows开发--控制程序运行单一进程
- 下半年的计划
- Github收藏之awesome-android-ui
- oracle中的decode的使用
- CentOS 6上编译安装LAMP
- SQL字段的被包含查询
- CodeForces 197D 搜索
- Hadoop完全分布式环境配置及 Word Count 程序运行
- inflate()引发NullPointerException