进程的互斥运行:CreateMutex函数实现只运行一个程序实例

HANDLE hMutex=CreateMutex(NULL,TRUE,"HDZBUkeyDoctorTool");
if(hMutex)
{
if(ERROR_ALREADY_EXISTS==GetLastError())
{
MessageBox(NULL, "程序已在运行中!", "盾医生:", NULL);
return FALSE;
}
}

原文地址:https://www.cnblogs.com/2018shawn/p/9435895.html

时间: 2024-07-29 09:28:12

进程的互斥运行:CreateMutex函数实现只运行一个程序实例的相关文章

多次单击快捷方式,只运行一个程序实例

在应用程序安装之后,单击一次快捷方式,就运行一个程序实例,对于资源独占型程序来说,这样是不可以的,比如该程序使用了当前系统的某个端口,当同样的程序再次运行,再次试图占用同一个端口次,会提示"端口已经被占用的"异常.如此,必须在启动应用程序时,必须判断该程序是否已经有一个实例在运行.下面这个类中先判断该程序的实例有没有在运行,使用线程同步类EventWaitHandle(Boolean, EventResetMode, String)及注册正在等待 WaitHandle 的委托方法Reg

Android 只开启一个Activity实例

在一个Activity中,多次调用startActivity()来启动另一个Activity,要想只生成一个Activity实例,方法有两种. 方法一:设置起动模式 一个Activity有四种启动模式:standard, singleTop, singleTask, singleInstance. standard: 标准模式,一调用startActivity()方法就会产生一个新的实例. singleTop: 如果已经有一个实例位于Activity栈的顶部时,就不产生新的实例,而只是调用Act

Winform程序只允许运行一个程序实例

/// <summary> /// 应用程序的主入口点. /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); /* * 利用互斥变量来控制应用程序只能运行一个 */ bool bRun = true; va

[转]Delphi中,让程序只运行一次的方法

program onlyRunOne; uses Forms,Windows,SysUtils, Dialogs, Unit1 in 'Unit1.pas' {Form1}; {$R *.res} var myMutex:HWND; begin myMutex:=CreateMutex(nil,false,'11111'); //名称只能全系统唯一. if WaitForSingleObject(myMutex,0)<>wait_TimeOut then begin Application.I

只运行一个实例以及内存泄漏检测

unit 使应用程序只运行一个实例; interface uses Windows; const  // - 互斥体唯一的名字  _Mutex_Name = '{19631971-1976-1981-1989-199319941995}'; var  _Mutex_Handle: THandle; implementation initialization // - 载入时调用的代码 // - 创建互斥体对象_Mutex_Handle := CreateMutex(nil, False, LPC

权大师专访:靠这30000个猴子,从此创业只需要一个idea?

猿团谢恩明 创业在猿团将会变得更加容易,你只要提供你的想法,剩下的都由猿团为你完成. 如果你是创业者的话,你肯定知道程序员技术资源是最为稀缺的资源.多少创业者喊着,我不差创意不差钱,只差一个程序员.技术对于创业如此重要,而很多创业者并不懂技术,寻找一个踏实靠谱的CTO更是难如登天.如今,猿团这个汇集30000个程序猿的“花果山”可以随时听候你的调遣.这让很多创业者眼前一亮. 猿团不是简单的技术外包,它开创了一种新型众包交易模型.因为软件开发的外包缺乏标准很难规模化,而猿团聚集了新一代云服务的资源

权大师重要专访:靠这30000个猴子,从此创业只需要一个idea?

猿团谢恩明 创业在猿团将会变得更加容易,你只要提供你的想法,剩下的都由猿团为你完成. 如果你是创业者的话,你肯定知道程序员技术资源是最为稀缺的资源.多少创业者喊着,我不差创意不差钱,只差一个程序员.技术对于创业如此重要,而很多创业者并不懂技术,寻找一个踏实靠谱的CTO更是难如登天.如今,猿团这个汇集30000个程序猿的“花果山”可以随时听候你的调遣.这让很多创业者眼前一亮. 猿团不是简单的技术外包,它开创了一种新型众包交易模型.因为软件开发的外包缺乏标准很难规模化,而猿团聚集了新一代云服务的资源

vc++高级班之窗口篇[4]---让程序只运行一个实例

大家都看过或者使用过类似只运行一个实例的程序,比如:QQ游戏.部分浏览器 等等! 让一个程序只运行一个实例的方法有多种,但是原理都类似,也就是在程序创建后,有窗口的程序在窗口创建前, 检查系统中是否已经设置了某些特定标志,是否创建了一些全局唯一的东西,或者让程序的多个实例都能看到的东西, 如果有则说明已经有一个实例在运行了,则当前程序通知用户如何如何,然后程序退出,当然方法有很多种,各有各的优缺点! ①.创建互斥体 Mutex 法: 但是单纯的使用互斥体的话不能取得已经创建的实例窗口局柄,因此无

WINCE程序只运行一个,防止多重运行。

在 winform中,程序只运行一个,防止多重运行,很容易.如用FindWindow.Mutex和C#直接Process遍历,都可以实现. 但是,到了WINCE 系统中,要么方法不存在,即使引入CreateMutex,也是白搭.根本无效. 从网上找到一篇通过系统快照方式的方案.不过,大侠们写的都不完整,我特地贡献一个可以直接使用的类: using System.IO; using System.Runtime.InteropServices; //可能还缺其他using,,,,没仔细看. pub