想讓自己的程式只被啟動一次,如果已經執行,則不再重複開啟。看了網上很多資料,我這裡主要記錄其中兩種:
尊重原創:實現qt單例程式 qsystemsemaphore qsharedmemory
**稍作改動:
#include "mainwindow.h"
#include
#include
#include
int main
(int argc, char *ar**)
#endif
/** 如果獲取成功,說明不是第乙個,直接退出就好了。
*/qsharedmemory unimem()
; bool isrunning =
false;if
(unimem.
attach()
)else
sema.
release()
;if(isrunning)
mainwindow mainwindow;
mainwindow.
show()
;exec()
;}
依賴於qtnetwork模組(在使用的時候,記得新增qt + = network )
實現單一程序
有時候,乙個模組x會被其他模組函式呼叫,模組x會產生很多的實現程序,具有不同的pid號。也許模組x在系統執行時只需要乙個實現程序就可以實現它對系統的服務功能,而執行多個實現程序則會造成對系統資源的浪費,而且在某些情況下,如果模組x是對某個硬體的控制,同時執行多個程序則會導致對硬體資源的搶奪,對硬體的...
Qt之執行乙個例項程序
from 發布程式的時候,我們往往會遇到這種情況 只需要使用者執行乙個例項程序 使用者可以同時執行多個例項程序 乙個例項程序的軟體有很多,例如 360 酷狗 多個例項程序的軟體也很多,例如 visual studio qt ctretor qq 下面我們來介紹下如何實現乙個例項程序。使用共享記憶體來...
Qt之執行乙個例項程序
發布程式的時候,我們往往會遇到這種情況 只需要使用者執行乙個例項程序 使用者可以同時執行多個例項程序 乙個例項程序的軟體有很多,例如 360 酷狗 多個例項程序的軟體也很多,例如 visual studio qt ctretor qq 下面我們來介紹下如何實現乙個例項程序。使用共享記憶體來實現,ke...