如何让程序只运行一次(BCB)

本文介绍了一种使用互斥量防止应用程序启动多个实例的方法。通过在主函数中创建与应用程序标题相关的互斥量,可以确保同一时刻只有一个实例运行。如果检测到已存在互斥量,则关闭当前实例。
  
看了网上GOOGLE到的代码后修改了一下,使用互斥……
 
只需修改Project1.cpp中相应的地方即可。
//---------------------------------------------------------------------------

#include 
<vcl.h>
#pragma hdrstop
//---------------------------------------------------------------------------
USEFORM("Main.cpp", MainForm);
//---------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
   HANDLE hMutex 
= CreateMutex( 0false, Application->Title.c_str() );
   
if ( hMutex )
   {
      
if ( GetLastError() == ERROR_ALREADY_EXISTS )
      {
         CloseHandle(hMutex);
         Application
->Terminate();
      }
   }
   
try
   {
       Application
->Initialize();
       Application
->CreateForm(__classid(TMainForm), &MainForm);
       Application
->Run();
   }
   
catch (Exception &exception)
   {
       Application
->ShowException(&exception);
   }
   
catch (...)
   {
       
try
       {
          
throw Exception("");
       }
       
catch (Exception &exception)
       {
          Application
->ShowException(&exception);
       }
   }
   CloseHandle(hMutex);
   
return 0;
}
//---------------------------------------------------------------------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值