兩個程式互相不重覆執行 |
尚未結案
|
papjaj
一般會員 發表:11 回覆:15 積分:5 註冊:2007-01-29 發送簡訊給我 |
各位大大,我利用在板上找到的code達到不能重覆執行同一個程式的效果
我的程式如下: [code cpp] Application->Title = this->Caption; HANDLE PrevInstHandle; HANDLE Mutex = OpenMutex(SYNCHRONIZE , false , Application->Title.c_str()); if (Mutex != NULL) { AnsiString strAppTitle = Application->Title; SetWindowText(Application->Handle , NULL); PrevInstHandle = FindWindow("TApplication" , strAppTitle.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()); [/code] 但是現在遇到的另一個問題, 現在有兩個程式,分別為s1及s2 兩個程式都能控制同一個硬體 但是現在必須讓s2的權限大於s1 於是必須達到以下兩種情形: 1.s1先開啟 此時再開啟s2,必須要能把s1關閉,並執行s2 2.s2先開啟 此時再開啟s1,則s1的執行動作被忽略,繼續保持s2的執行 上面兩種情況是否能用我現在使用的這個code下去修改? 或是需要使用別的方式來達到我需要的功能? |
zhgwbzhd
一般會員 發表:10 回覆:32 積分:18 註冊:2008-07-24 發送簡訊給我 |
我認為完全可以啊。
隻要在啓動S1時,找一下有沒有S2即可,有就不啓動,沒有就啓動。 在啓動S2時,找一下有沒有S1,有就關閉S1.沒有就直接啓動。 ===================引 用 papjaj 文 章=================== 各位大大,我利用在板上找到的code達到不能重覆執行同一個程式的效果 我的程式如下: [code cpp] Application->Title = this->Caption; HANDLE PrevInstHandle; HANDLE Mutex = OpenMutex(SYNCHRONIZE , false , Application->Title.c_str()); if (Mutex != NULL) { AnsiString strAppTitle = Application->Title; SetWindowText(Application->Handle , NULL); PrevInstHandle = FindWindow("TApplication" , strAppTitle.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()); [/code] 但是現在遇到的另一個問題, 現在有兩個程式,分別為s1及s2 兩個程式都能控制同一個硬體 但是現在必須讓s2的權限大於s1 於是必須達到以下兩種情形: 1.s1先開啟 此時再開啟s2,必須要能把s1關閉,並執行s2 2.s2先開啟 此時再開啟s1,則s1的執行動作被忽略,繼續保持s2的執行 上面兩種情況是否能用我現在使用的這個code下去修改? 或是需要使用別的方式來達到我需要的功能? |
papjaj
一般會員 發表:11 回覆:15 積分:5 註冊:2007-01-29 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |