防此程式重複執行 BCB2010 |
|
shchen
一般會員 發表:12 回覆:27 積分:7 註冊:2003-08-13 發送簡訊給我 |
從BCB5到BCB6,一路用到BCB2010,發現舊的防止程式重複執行的方法,不管用了,只能夠防止程式重複執行,卻不能將已開啟的程呼叫出來,將就用了舊方法3個月,討論板上用"重複執行"去搜尋,不乏許多方式,但都是將程式碼放在Application.Create內,今日有時間研究研究,將原本出自BCB 心得(一)內的程式碼修改了一下,成功了,分享給大家比較簡便的方法,只要將以下程式碼貼到FromCreate事件內即可.(記得依自己的MainForm改名喔)
以下程式碼只支援BCB2010,已試過了BCB6不行喔.若有人需要BCB6的請再留言. [code cpp] //***********防止程式重複執行功能***************STRART Application->Title=MainForm->Caption; //TrayIcon1->Hint=MainForm->Caption; HWND PrevInstHandle; HANDLE Mutex = OpenMutex(SYNCHRONIZE,false,Application->Title.t_str()); if (Mutex != NULL) { SetWindowText(this->Handle,NULL); PrevInstHandle = FindWindow(NULL,Application->Title.t_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.t_str()); //***********防止程式重複執行功能***************END [/code] |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |