本站文件搜索 :輸入關鍵字,查找本站您所需要的文件! 本網站已經開通手機終端,手機訪問http://www.cpvyin.tw 轉至對應的WebApp域名。
當前位置:首頁 > 電腦設計 > 電腦設計技巧 > 詳細內容
防止應用程序的多個實例運行
發布時間:2015-2-12  閱讀次數:3257  字體大小: 【】 【】【

防止應用程序的多個實例運行

 

一、原理


我們在設計軟件時需要考慮的一個現實問題是如果用戶打開了多個應用程序時應該怎樣處理。一般標準的做法是彈出一個提示窗口告訴用戶該應用程序已經處于運行中,然后阻止該實例的重復運行。具體實現方法要用到Windows的一個全局同步對象mutex。當第一次啟動一個實例時我們使用CreateMutex函數創建一個mutex對象,然后每次啟動一個實例時我們都使用OpenMutex函數檢查mutex對象的值。若mutex為nil則表示還沒有該實例在運行,否則表示已有實例在運行。


二、程序代碼


program Project1;


uses  Forms,  windows,  Dialogs,  Unit1 in 'Unit1.pas' {Form1};


{$R *.res}


var mutex:THandle;


begin


 try


 mutex:=OpenMutex(0,false,'mutexname');


 if mutex=0 then //沒有該實例在運行


    begin


       mutex:=CreateMutex(nil,true,'mutexname');


       //創建一個名為mutexname的mutex對象


       Application.Initialize;


       Application.CreateForm(TForm1, Form1);


       Application.Run;//啟動一個實例


    end


 else //若已有一個實例在運行


    begin


       ShowMessage('應用程序已在運行中!');


       Application.Terminate;//阻止實例的重復運行


    end;


 finally


   ReleaseMutex(mutex);//釋放mutex對象


 end;


end.


三、說明


   以上代碼應出現在項目文件的啟動代碼中。該程序用delphi6.0 在windows98上通過。




我要評論
  • 匿名發表
  • [添加到收藏夾]
  • 發表評論:(匿名發表無需登錄,已登錄用戶可直接發表。) 登錄狀態:未登錄
最新評論
所有評論[0]
    暫無已審核評論!


電腦技巧學習網站版權所有  地址:廣州市海珠區
       本站部分有關軟件和系統的內容和觀點來自網絡,不代表本站觀點!特此公告!電腦技巧學習論壇,真誠歡迎熱愛探討電腦技巧的朋友加入電腦技巧學習論壇,將你的觀點、見解和作品分享給網友們!電腦技巧網,提供計算機知識,電腦使用技巧,電腦基礎知識,讓電腦愛好者可以快速學到電腦知識!
 注意事項:電腦不要24小時通電,偶爾會遭遇雷雨天氣。會損壞電腦。 


站內所有資源僅供學習與參考,請勿用于商業用途,否則產生的一切后果將由您自己承擔!

 copyright 2000-2109  ( dnjqxx.com ) All rights reserved   粵ICP備18150927號
廣告聯系|版權聲明|下載幫助|軟件發布| 網站地圖|

企業簡介 |總裁致辭|成長歷程|聯系我們|組織機構|企業文化

網站統計

广东26选5开奖号码