程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi禁止重復運行同一程序的方法

Delphi禁止重復運行同一程序的方法

編輯:Delphi

一個程序只允許打開一次,平時見到類似的軟件比較多了,比如Windows的播放器、Photoshop等,當這些軟件打開的時候,如果需要打開他們可以打開的文件,即使你雙擊文件,也只是在已打開的軟件中運行,並不會重新打開一個進程,這樣可有效減少資源浪費。

那麼實現一個程序只允許運行一個實例,方法有很多,今天主要介紹兩種方法,網上Delphi達人的辦法,希望有用:

第一種方法,使用“過程調用”:

01 procedure Del; // 自定義過程 02 var 03   Mutex: THandle; 04 begin 05   Mutex := CreateMutex(nilTruePChar(Application.Title)); 06   if GetLastError = ERROR_ALREADY_EXISTS then 07   begin 08     Application.MessageBox('程序已經在運行...','系統提示', MB_ICONERROR); 09     ReleaseMutex(Mutex);   {釋放資源} 10     Application.Terminate; 11   end; 12 end;

第二種方法:通過寫入dpr工程文件:

01 program Project1; 02 uses 03   Forms, Windows, 04   Unit1 in 'Unit1.pas' {Form1}; 05 {$R *.RES} 06 var Mutex:THandle; 07 begin 08  Mutex := CreateMutex(nil,true,'one');  {第3個參數任意設置} 09  if GetLastError <> ERROR_ALREADY_EXISTS then 10  begin 11   Application.Initialize; 12   Application.CreateForm(TForm1, Form1); 13   Application.Run; 14  end 15  else 16   Application.MessageBox('該程序正在運行!','提示',MB_OK); 17   ReleaseMutex(Mutex);   {釋放資源} 18 end.

兩種方法介紹完了,任意一種方法都很好用,復制代碼到你的軟件項目中試下吧。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved