一、利用訊號量實現程序間
**如下:
handle hsem = createsemaphore(null, 1, 1, m_pszexename); // 建立命名的訊號量
// 訊號量存在,則程式已有乙個例項執行
if (getlasterror() == error_already_exists)
// 將主窗啟用
::setforegroundwindow(hwndprevious);
// 將主窗的對話方塊啟用
::setforegroundwindow(::getlastactivepopup(hwndprevious));
// 退出本例項
return false;
}// 繼續尋找下乙個視窗
hwndprevious = ::getwindow(hwndprevious,gw_hwndnext);
}// 前一例項已存在,但找不到其主窗
// 可能出錯了
// 退出本例項
return false;
}
二、建立共享資料段實現
#pragma data_seg("mydata")
//在此處定義變數,例如int i = 0;
#pragma data_seg ()
#pragma comment(linker,"/section:mydata,rws") //設定改段為共享段
三、利用socket通訊實現 C 實現單例項程式
原文 c 實現單例項程式 在我們經常使用的軟體中,當我們已經開啟後,再次開啟時,有的軟體不會出現兩個。例如有道詞典,會將上次的介面顯示出來,或者提示我們 該程式已經執行.我通過乙個簡單的c wpf例子來說明。首先我們要了解一下執行緒中的互斥體 mutex 引用msdn官方文件解釋,這是乙個同步基元,...
Qt單例項程式 防止程式多開
使用qlocalserver,qlocalsocket實現單例項程序,當已經存在相同程序時且視窗未啟用 遮擋,最小化,托盤 時,啟用程序主視窗。參考文章 class qlocalserver brunning false localserver null mainwindow null 說明 通過s...
EXT JS 6示例程式 Login示例程式
1.用sencha cmd生成應用程式模版 2.建立login view元件 資料夾下,有預設的 main 資料夾,這個資料夾包含了檔案main.js,maincontroller.js,和 mainmodel.js 資料夾下建立乙個資料夾 login 在 login 資料夾下,新建兩個檔案 log...