⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 如何确保你的.exe文件仅运行一次!.txt

📁 大量Delphi开发资料
💻 TXT
字号:
如何确保你的.exe文件仅运行一次!



利用Windows 的全局原子表信息来实现此功能

Windows 的全局原子表可以被当前所有应用程序访问。它一共可包含37 项内容。


下面是实现代码:


procedure TForm1.FormCreate(Sender: TObject);

begin

{搜寻表看是否程序已运行}

if GlobalFindAtom('PROGRAM_RUNNING') = 0 then

{ 如果没运行

则在表中增加信息 }

atom := GlobalAddAtom('PROGRAM_RUNNING')

else begin

{ 如果程序已运行

则显示信息然后退出 }

MessageDlg('You have the program running

all ready!!'

mtWarning

[mbOK]

0);

Halt;

end;

end;


procedure TForm1.FormDestroy(Sender: TObject);

begin

{从表中移走信息以便程序能再运行}

GlobalDeleteAtom(atom);

end;



**********************************************************************
如何让程式只执行一份?



program DEL3test;


uses

Forms

Windows

SysUtils


DEL3unit in 'DEL3unit.pas' {Form1};


{$R *.RES}


Var

hMutex:HWND;

Ret:Integer;

begin

Application.Initialize;

Application.Title := 'aaaaaa';

hMutex:=CreateMutex(nil

False

'aaaaaa');

Ret:=GetLastError;

If Ret<>ERROR_ALREADY_EXISTS Then

Begin

Application.CreateForm(TForm1

Form1);

Application.Run;

End

Else

Application.MessageBox('Run Twice!'

'Notes!'

MB_OK);

ReleaseMutex(hMutex);

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -