请教大家关于在delphi中防止程序多次运行的方法
2个回答
2017-02-15 · 知道合伙人软件行家
关注
展开全部
在 delphi 中防止程序多次运行,有多种办法:
1、通过查找是否存在同名窗口的方式来防止,示例代码如下:
Var Hwnd:Thandle;
Begin
Hwnd:=FindWindow(‘窗口类名称’,‘窗口标题’);
If Hwnd=0 then
Begin
Application.Initialize;
Application.CreateForm(Tform1, Form1);
Application.Run;
End;
End;
2、使用互斥对象,示例代码如下:
var
mymutex: THandle;
begin
mymutex:=CreateMutex(nil,True,'MyMutx');
if GetLastError<>ERROR_ALREADY_EXISTS then
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end
else
showmessage('程序已经运行');
end.
3、使用全局原子,示例代码如下:
const
myatom='myatom';
begin
if GlobalFindAtom(myatom)=0 then
begin
GlobalAddAtom(myatom);
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
GlobalDeleteAtom(GlobalFindAtom(myatom));
end
else
showmessage('程序已运行');
end.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询