本文整理自网络,侵删。
// 防止程序重复运行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》频道 >>