VC程式只執行乙個例項,並在開啟多個時啟用原視窗

2022-04-01 11:37:47 字數 506 閱讀 7319

(一)單文件應用程式

// 繼續尋找下乙個視窗

hwndprevious = ::getwindow(hwndprevious,gw_hwndnext);

}// 前一例項已存在,但找不到其主窗

afxmessagebox("已有乙個例項在執行,但找不到它的主視窗!");

// 可能出錯了

// 退出本例項

return false;

}......

}2、在框架類的oncreate()函式中設定查詢標記

int cmainframe::oncreate(lpcreatestruct lpcreatestruct)

3、在程式退出是刪除設定的標記,在框架類中響應wm_destroy訊息,進行處理

void cmainframe::ondestroy()

(二)對話方塊應用程式

類似單文件應用程式,在對話方塊的initinstance()、oncreate()、ondestroy()中新增以上**

vc 只執行乙個例項,並啟用已執行例項

程序的互斥執行 createmutex函式實現只執行乙個程式例項 正常情況下,乙個程序的執行一般是不會影響到其他正在執行的程序的。但是對於某些有特殊要求的如以獨佔方式使用序列口等硬體裝置的程式就要求在 其程序執行期間不允許其他試圖使用此埠裝置的程式執行的,而且此類程式通常也不允許執行同乙個程式的多個...

讓程式只執行乙個例項(C )

通常我們會遇到這樣的情況,讓程式只執行乙個例項,比如啟動防毒軟體時,只能啟動乙個,再啟動的話就沒什麼效果!利用程式名來判斷不是乙個好辦法,如果我們把程式名稱改一下就可以執行兩個完全一樣的程序。我們最好利用程式集的attribute存放特定資訊,然後用assembly物件的getcustomattri...

VC程式只執行一次例項

方法一 建立全域性互斥體,然後在程序啟動時檢查該互斥體是否已被建立 只需要在initinstance 中加入 方法二 乙個程式可以執行多個例項 程序 那我們如何讓它僅執行乙個例項呢?很簡單,使用 pragma編譯器指令在程序的位址空間內建立乙個 共享節 就可以 達到目的,這個 共享節 裡的資料為多個...