Delphi 防止程序重复打开运行


本文整理自网络,侵删。

 
// 防止程序重复运行
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);
begin
ExeMutex();
end;

相关阅读 >>

Delphi异常处理try except语句和try finally语句用法以及区别

Delphi 2009 之 tcategorypanelgroup[2]: headeralignment、gradientdirection

Delphi webbrowser1 网页提交按钮执行点击事件

Delphi 类和对象

Delphi 完美获取硬盘id

Delphi xe5获取android imei id

Delphi pc喇叭发声

Delphi获取13位格林治时间实现方法

Delphi 颜色选取

Delphi 闪盘小偷

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...