實現程式只執行一次的方法很多,但是原理都是一樣的,就是執行第一次的時候設定乙個標記,每次執行的時候檢查該標記,如果有就說明已經執行了。
具體實現:
1、在程式初始化的時候 (initinstance()) 列舉所有的視窗,查詢本程式的例項是否存在
2、在主視窗初始化的時候在本視窗的屬性列表中新增乙個標記,以便程式查詢.
部分關鍵**
hwnd oldhwnd = null;2、新增enumwndproc視窗過程函式:enumwindows(enumwndproc,(lparam)&oldhwnd); //列舉所有執行的視窗
if(oldhwnd != null)
//新增的標識只執行一次的屬性名3、在主視窗的 oninitdialog()中新增屬性cstring g_szpropname = "your prop name"; //自己定義乙個屬性名
handle g_hvalue = (handle)1; //自己定義乙個屬性值
bool callback enumwndproc(hwnd hwnd,lparam lparam)
return true;
}
//設定視窗屬性setprop(m_hwnd,g_szpropname,g_hvalue);
(全文完)
vc 只執行乙個例項,並啟用已執行例項
程序的互斥執行 createmutex函式實現只執行乙個程式例項 正常情況下,乙個程序的執行一般是不會影響到其他正在執行的程序的。但是對於某些有特殊要求的如以獨佔方式使用序列口等硬體裝置的程式就要求在 其程序執行期間不允許其他試圖使用此埠裝置的程式執行的,而且此類程式通常也不允許執行同乙個程式的多個...
只執行乙個程式
重複執行程式會造成系統資源的浪費 這句話真彆扭 很多情況 下我們把程式最小化或者隱藏起來,想用這個程式的時候會習慣的doulbeclick程式的圖示,wo 又乙個程式執行了,我們本意是既然已經是開啟的程式,你把程式再給我顯現出來不就可以了?弱智的程式設計師阿 不是說你,也不是說我,假想。常見的方法有...
程序只執行乙個例項
守護程序往往需要設定使其只執行乙個例項,這裡展示檔案鎖的方式實現 1.使用fcntl 函式設定檔案鎖 include include include include include include include int main else pause return 0 2.使用flock 設定鎖 ...