禁止程序重复运行

方法一:
var
   hMutex:hwnd;
   ret:integer;
begin
  Application.Initialize;
  hmutex:=createMutex(nil,false,'project1');
  ret:=getlasterror;
  if ret<>error_already_exists then
  begin
    Application.CreateForm(TMainFrm, MainFrm);
  Application.Run;
  end
  else
  begin
    Application.MessageBox('程序已经运行,请不要运行两次','程序不能运行',MB_OK or MB_ICONERROR);
  end;
  releasemutex(hmutex);
end.
方法二:
你可以用消息机制!
还有,为了怕程序重复启动,也不需要这样的麻烦!
就在主窗体creat时,写上以下代码:
var
  str : string;
  HForm : Hwnd;
begin
  str := 'FormName '//这里不是FormName,而是主窗体的名,自己输入了!
  HForm := FindWindow(nil,Pchar(str));
  if HForm > 0 then Application.Terminate;
  ...
end;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值