设为首页 加入收藏

TOP

Delphi中保证程序只运行一个实例的方法总结
2015-02-02 14:22:05 来源: 作者: 【 】 浏览:10
Tags:Delphi 保证 程序 运行 一个 实例 方法 总结

在做Delphi的一个小工具的时候,要让自己的程序保证只启动一个实例如下有几种方法实现:


1.使用系统函数FindWindows()函数来实现:


program Project1;


uses
? Forms, Windows,//添加Windows单元
? offertool in 'offertool.pas' {foffertool},
? MyThread in 'MyThread.pas',
? offerchild in 'offerchild.pas' {fofferchild};


{$R *.res}


var
? Hwnd:THandle;? //添加一个句柄


begin
? Hwnd := FindWindow('Tfoffertool',nil);? //参数1:窗口类名,参数2:窗口标题
? if Hwnd=0 then
? begin
? ? Application.Initialize;
? ? Application.CreateForm(Tfoffertool, foffertool);
? ? Application.Run;
? end
? else
? begin
? ? Application.MessageBox('已经运行了一个实例','提示',MB_OK);
? end;
end.


2.使用使用互斥对象来实现:


program Project1;



uses
? Forms, Windows, //添加Windows单元
? offertool in 'offertool.pas' {foffertool},
? MyThread in 'MyThread.pas',
? offerchild in 'offerchild.pas' {fofferchild};


{$R *.res}


var
? myMutex:THandle; //添加一个互斥锁句柄


begin
? myMutex := CreateMutex(nil,True,'新股代理申购报盘');
? if GetLastError<>ERROR_ALREADY_EXISTS then
? begin
? ? Application.Initialize;
? ? Application.CreateForm(Tfoffertool, foffertool);
? ? Application.Run;
? end
? else
? ? Application.MessageBox('已经运行了一个实例','提示',MB_OK);
end.


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇OpenGL 基础图形绘制与投影变换 下一篇Delphi中关于INI文件的格式以及注..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: