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 excel数据导入数据库表

Delphi code无法回车换行

Delphi 跳出循环的几种方法

Delphi 去掉文件只读属性

Delphi 按字母排序的windows窗口公用消息

Delphi stopprocess 进程关闭函数

Delphi 在电脑屏幕上显示图片

Delphi 木马配置器通用写法(末尾追加数据的方法)

Delphi #9、 #10、 #13 表示的意思

Delphi idhttp实现地址自动转向

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



打赏

取消

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

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

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

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

评论

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