點選Project->View Source開啟下列程式碼加入紅色的部分就可以防止程式重複啟動


//---------------------------------------------------------------------------

#include
#pragma hdrstop
//---------------------------------------------------------------------------
USEFORM("Unit1.cpp", Form1);
//---------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
        HANDLE mutex;
        const char ProgramName[]="project1";//應用程式名稱
        try
        {
          mutex=CreateMutex(NULL,true,ProgramName);//設定互斥旗標
          if(GetLastError()==ERROR_ALREADY_EXISTS)
      //系統中已開啟過就不再啟動本程式
          {
            
Application->MessageBox("請勿重複程式","project1", 64+0);
        //加入重複的時候要做的動作
        ReleaseMutex(mutex);
            return 0;
          }

          Application->Initialize();
          Application->CreateForm(__classid(TForm1), &Form1);
          Application->Run();
        }
        catch (Exception &exception)
        {
          Application->ShowException(&exception);
        }
        catch (...)
        {
          try
          {
            throw Exception("");
          }
          catch (Exception &exception)
          {
            Application->ShowException(&exception);
          }
        }
        ReleaseMutex(mutex);
        return 0;
}
//---------------------------------------------------------------------------

另外有在另一位大爺的網誌看到另一種方式

但感覺程式碼比較長又複雜~所以我比較喜歡用這一個~^^

Nelson 的閃光區 - [BCB] 禁止程式重複執行

arrow
arrow
    全站熱搜

    玥 發表在 痞客邦 留言(0) 人氣()