程式不重覆執行參數傳遞 |
尚未結案
|
asliu
一般會員 發表:3 回覆:1 積分:0 註冊:2003-03-13 發送簡訊給我 |
各位前輩好: 在希望程式不重覆執行的情況下,於FormCreate()內加入下列程式碼:(程式碼為本討論區網友所提供,主要用於讓程式不重覆執行)
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());由於本身程式的需求,設定某些副檔名.xxx可由程式開啟;雙擊該檔案可直接開啟程式,此時WinMain中引數lpCmdLine會傳入該檔檔案名稱,上述情況是在程式第一次開啟時發生。 WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) 我的問題是,未加入上述程式碼(不讓程式重覆執行)時,都會重新執行WinMain()和FormCreate(),但一旦加入上述程式碼後,連WinMain()和FormCreate()都不執行。 上述結果是在WinMain()和FormCreate()中加入下列程式碼,然後去看它的時間變化。 #include "Unit1.h" #include本以為至少會執行FormCreate(),如此才會去跑讓程式不重覆執行的程式碼,但似手沒有。 請問我該如何解決這個問題,並成功地在讓程式不重覆執行的前提下,將點選的檔案名稱再次傳入程式中? 往日情懷 發表人 - asliu 於 2003/11/28 19:36:41 發表人 - asliu 於 2003/11/28 19:40:33 |
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |