C 禁止應用程式多次啟動

2021-06-08 21:36:16 字數 895 閱讀 5346

經常我們會有這樣的需求,只讓應用程式執行乙個實體。通常我們的情況是,雙擊乙個exe檔案,就執行乙個程式的實體,再雙擊一次這個exe檔案,又執行這個應用程式的另乙個實體。就拿qq遊戲來說吧,一台電腦上一般只能執行乙個qq遊戲大廳(不過以前聽說過有雙開的外掛程式)。

那我們的程式也能像qq遊戲那裡禁止多次啟動嗎,答案是可以的,下面介紹下乙個簡單的實現方法,那就是mutex(

互斥)。

mutex(mutual exclusion,互斥)是.net framework中提供跨多個執行緒同步訪問的乙個類。它非常類似了monitor類,因為他們都只有乙個執行緒能擁有鎖定。而作業系統能夠識別有名稱的互斥,我們可以給互斥乙個唯一的名稱,在程式啟動之前加乙個這樣的互斥。這樣每次程式啟動之前,都會檢查這個命名的互斥是否存在。如果存在,應用程式就退出。

static class program}}

/// /// 檢視程式是否已經執行

///

///

private static process getexistprocess()

}return null;

}/// /// 使程式前端顯示

///

///

private static void setforegroud(process instance)

}[dllimport("user32.dll")]

private static extern bool setforegroundwindow(intptr hwnd);

[dllimport("user32.dll")]

private static extern bool showwindowasync(intptr hwnd, int cmdshow);

}

python啟動應用程式和終止應用程式

每天上班,工作需要,電腦上需要每天開機啟動一些軟體,下班時候,需要關掉一些軟體。乙個乙個開啟和關閉貌似是很繁瑣的,於是乎,這個指令碼產生了。系統環境 win7 32位 python 2.7.9 你還需要安裝pywin32。pip install pywin32 啟動應用程式指令碼 coding ut...

MonkeyRunner 啟動應用程式

前段時間一直糾結於怎樣才能獲取應用程式的安裝包名稱與startactivity名稱,這個問題的產生是這樣的 我一直在學習android device的自動化測試,發現 大全在 方面確實不錯,於是就想用自動化來實現其中的一部分功能。from com.android.monkeyrunner impor...

啟動黑莓應用程式

啟動應用程式 這裡將介紹兩種在 blackberry 中啟動應用程式的方法。1 使用invoke 為啟動乙個應用程式,開發者可以呼叫帶有合適常量和 子類的物件的 方法。使用這種方法將導致乙個處理上下文的轉化,當 blackberry 程式啟動時 你的應用程式將失去控制,在啟動的應用程式對話中止時 內...