1
有沒有辦法確定是否有在C#中運行的活動安裝?例如,如果您一次啓動2個MSI(或setup.exes),其中一個人會說正在進行安裝。有沒有辦法在C#中做到這一點?說,一個自我重置的註冊表項(系統重置)或一個互斥體?檢查C#中的運行安裝#
有沒有辦法確定是否有在C#中運行的活動安裝?例如,如果您一次啓動2個MSI(或setup.exes),其中一個人會說正在進行安裝。有沒有辦法在C#中做到這一點?說,一個自我重置的註冊表項(系統重置)或一個互斥體?檢查C#中的運行安裝#
互斥量是要走的路。
bool isFirst;
Mutex m = new Mutex(false, "MyMutex", out isFirst);
如果isFirst爲false,則會有另一個進程在運行。至於名稱,如果你想要檢查多個會話(終端會話),然後將代碼更改爲類似。
Mutex m = new Mutex(false, "Global\\MyMutex", out isFirst);
沒錯,但是如果我還想看看Windows安裝程序是否正在運行呢? – Crypton 2010-08-18 18:59:36
您可能可以使用MSI API來執行此操作。如果你不這樣做,那麼不能保證你的註冊表/互斥量不會被破壞。我相信Windows安裝程序API的最乾淨的包裝可在http://wix.sourceforge.net/獲得。 – 2010-08-17 23:05:51