Qt單一例項程序

2021-09-26 22:15:40 字數 637 閱讀 1499

想讓自己的程式只被啟動一次,如果已經執行,則不再重複開啟。看了網上很多資料,我這裡主要記錄其中兩種:

尊重原創:實現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...