本文整理自网络,侵删。
// 防止程序重复运行procedure ExeMutex();var PrevInstHandle: THandle; Mutex: THandle; h: HWND;begin Mutex := OpenMutex(SYNCHRONIZE, false, PChar(Application.title));
if Mutex <> 0 then begin PrevInstHandle := Winapi.Windows.FindWindow(nil, PChar(Application.title));
if PrevInstHandle <> 0 then begin if IsIconic(PrevInstHandle) then ShowWindow(PrevInstHandle, SW_RESTORE) else BringWindowToTop(PrevInstHandle);
SetForegroundWindow(PrevInstHandle); end; // Application.ShowMainForm := false; //XE10 ?]有了 Application.Terminate(); end else CreateMutex(nil, false, PChar(Application.title));end;
procedure TForm1.FormCreate(Sender: TObject);beginExeMutex();end;
相关阅读 >>
Delphi异常处理try except语句和try finally语句用法以及区别
Delphi 2009 之 tcategorypanelgroup[2]: headeralignment、gradientdirection
Delphi webbrowser1 网页提交按钮执行点击事件
更多相关阅读请进入《Delphi》频道 >>