Delphi中避免程序重复运行的方法
2008-10-17 21:30
381 查看
1.使用全局atom
program Project1;
uses
windows,
Forms,
Dialogs,
Unit1 in 'Unit1.pas' {Form1};
{$R *.res}
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.
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.使用FindWindow函数,通过查找窗口名称的方式,如果有同样名称的窗口,可能会有问题的,可能还是前面两种方法比较好吧,个人喜欢第一种方法。
var
myhandle: THandle;
begin
myhandle:=FindWindow(nil,'Form1');
if myhandle=0 then
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end
else
showmessage('程序已经运行');
end.
program Project1;
uses
windows,
Forms,
Dialogs,
Unit1 in 'Unit1.pas' {Form1};
{$R *.res}
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.
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.使用FindWindow函数,通过查找窗口名称的方式,如果有同样名称的窗口,可能会有问题的,可能还是前面两种方法比较好吧,个人喜欢第一种方法。
var
myhandle: THandle;
begin
myhandle:=FindWindow(nil,'Form1');
if myhandle=0 then
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end
else
showmessage('程序已经运行');
end.
相关文章推荐
- Delphi禁止重复运行同一程序的方法
- 定义避免程序重复运行的互斥量导致无法升级时替换自己重启(delphi)
- 避免程序重复运行的简单处理方法
- Delphi避免程序重复运行
- delphi中,让程序只运行一次的方法[1]
- 如何判断程序是否重复运行的几种方法
- C# .net防止一个程序(WinForm)重复运行的方法。
- 项目中避免父类方法重复运行
- Delphi程序获取自身运行目录的方法(取运行目录)(转载)
- 用互斥量避免程序重复运行
- 【转】delphi程序只允许运行一个实例的三种方法:
- Delphi中,让程序只运行一次的方法
- Delphi只能运行一个程序实例的方法
- 避免程序重复运行
- C# .net防止一个程序(WinForm)重复运行的方法。
- VC++ 避免重复启动程序的方法
- 【Delphi学习】运行程序后闪一下就结束的解决方法
- Delphi中,让程序只运行一次的方法
- delphi 7.0程序运行关闭最后弹出CPU窗口:ntdll.DbgBreakPoint的解决方法
- [WinForm]C# .net防止一个程序(WinForm)重复运行的方法。