我在.NET中使用C#。防止單個可執行文件的多個進程實例
我想防止同一個可執行文件的兩個實例同時運行,但我不想阻止從另一個文件夾運行的相同進程。
例如,我有一個可執行文件是在兩個不同的位置:
C:\ MyProject的\萬事達\的Program.exe
C:\ MyProject的\從屬\的Program.exe
這些是相同的.exe文件,但在兩個不同的位置。
我想允許一個從Master文件夾運行的Program.exe實例和一個來自Slave文件夾的實例,但沒有任何兩個實例。
我試圖通過檢查具有相同名稱(Process.GetProcessesByName)的進程數量來做到這一點,但後來我不能區分這兩者。
我發現的最接近的是從過程中獲取模塊。
列表中的第一個是exe的ProcessModule。但我不確定這是否會永遠是名單上的第一個。是否有任何保證,還是有解決問題的更好解決方案?要做到這一點
我真的投票關閉這個重複的[this](http://stackoverflow.com/questions/819773/run-single-instance-of-an-application-using-mutex),當我意識到你給予的細微差別時。抱歉。但是,您仍然可以按照該方法進行操作,但是會將完整的路徑名編碼爲互斥體的名稱,從而允許每個目錄上的實例。 –
沒問題。我甚至不知道我的解釋是否足夠清楚。 :) –