關於防多開的幾種方法

2022-08-12 00:27:15 字數 658 閱讀 4778

1)使用findwindow api函式。 

通過查詢視窗標題(或/和類名)來判斷程式是否正在執行。如果找到了,表明程式正在執行,這時可退出程式,達到不重複執行的效果;反之表明程式是第一次執行。

這種方法不適用於以下情況,程式的標題是動態變化的、系統中執行了相同標題(或/和類名)的程式

2)mutex/event/semaphore 

通過互斥物件/訊號量/事件等執行緒同步物件來確定程式是否已經執行。最常用的函式如:createmutexa(注意:qq堂、qq遊戲大廳就是採用這樣方法來限制程式多開的)

4)dll全域性共享區 

dll全域性共享區在對映到各個程序的位址空間時僅被初始化一次,且是在第一次被windows載入時,所以利用該區資料就能對程式進行多開限制。

5)全域性atom 

將某個特定字串通過globaladdatom加入全域性原子表(global atom table),程式執行時檢查該串是否存在來限制程式多開。(該atom不會自動釋放,程式退出前必須呼叫globaldeleteatom來釋放atom)

6)檢查視窗屬性

將某些資料通過setprop加入到指定視窗的property list,程式執行時列舉視窗並檢查這些資料是否存在來限制多開。

以上只列舉了最常見的幾種方法,不知道還有別的方法沒了, 額了個去~~~~~~~~

關於數值交換的幾種方法

在大量的開發中常常會遇到需要交換兩個數值的問題,今天就給大家分享一些數值交換方面的方法 第一種方法 這也是大家最容易想到的方法,即利用中間變數達到交換兩個數的目的,具體如下 int tmp tmp i1 i1 i2 i2 tmp 這種方法執行效率是最低了 第二種方法 利用數學中的運算技巧 i1 i1...

關於Flash全屏的幾種方法

第一種flash自帶屬性 此屬性可以 完美 實現flash的雙擊退出或者進入全屏 但是會遮擋巢狀的iframe private function init void 雙擊監聽事件 private function togglefullscreen event mouseevent void 第二種f...

關於IIS重啟的幾種方法

最小白的方法 進入作業系統的 服務 找到iis,重啟之。第一步,開啟 服務 視窗 直接開啟任務管理器。ctrl shift esc,選最後的 服務 或者win r開啟執行,輸入services.msc 注意service後有乙個s,輸入法一般會自動提示單詞service,不帶s 開啟服務視窗後,找到...