BCB-防止程式重複執行

要防止自己的程式重複執行,使用的方法有好幾種,有些方法甚至要去修改*.bpr(C++ Builder 專案檔),但建議不要任意修改 C++ Builder 自動維護的專案檔;使用下列方法只要將下列程式碼原封不動的抄到FormCreate() 事件中即可,不但不會讓相同的程式同時存在第二個實體,而且在執行時發現第一個實體已存在而且是最小化時,還會將其彈出展開於桌面上....

//-------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
 
Application->Title=Form1->Caption;
 
HANDLE PrevInstHandle;
 
HANDLE Mutex = OpenMutex(SYNCHRONIZE,false,Application->Title.c_str());
 
if (Mutex != null){
   
String AppTitle=Application->Title;
   
SetWindowText(Application->Handle,null);
   
PrevInstHandle = FindWindow("TApplication", AppTitle.c_str());
      
if (PrevInstHandle != 0){
         
if (IsIconic(PrevInstHandle))
           
ShowWindow(PrevInstHandle, SW_RESTORE);
       }
else{
         
BringWindowToTop(PrevInstHandle);
         
SetForegroundWindow(PrevInstHandle);
      
}
   
Application->ShowMainForm = false;
   
Application->Terminate();
 
}else{

    CreateMutex(null, false, Application->Title.c_str());

}

arrow
arrow
    文章標籤
    BCB C++
    全站熱搜
    創作者介紹
    創作者 yao67 的頭像
    yao67

    洋芋片與羊吧@Pixnet

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