2011-09-22 50 views
2

有沒有簡單的方法知道msi何時運行? (無論是靜音模式還是非靜音模式。)也許使用和MSI API?從什麼地方讀取?...MSI - 如何知道特定MSI何時運行

我需要這個以避免啓動用C++編寫的程序。

感謝您的幫助。

+0

它是你的程序嗎?這是你升級的程序嗎? –

回答

1

沒有任何API用於檢測正在運行的安裝程序。而且,MSI安裝有兩個序列:

InstallUISequence使用當前用戶帳戶下運行的過程。 InstallExecuteSequence使用Windows Installer服務的子進程。

因此,檢測正在運行的安裝並不容易。我能想到的唯一解決方案是枚舉所有打開的窗口並嘗試按名稱查找安裝對話框。

+1

感謝您的回答Cosmin.I無法忍受安裝人員如何管理這種情況。例如,在我的情況下,我必須做升級,所以,在升級過程中,我有可能運行主應用程序(當然這正在更新)... –

+0

@Santiago它是安裝程序比開始您的升級時應用程序?我在這裏看不到任何問題:您可以在升級完成時啓動已安裝的應用程序。 –

+0

@AlexeyIvanov我在使用策略(從http://msdn.microsoft.com/library/aa371197.aspx獲取)所以,這裏的關鍵是我正在升級我的產品並在這個過程中,我將雙擊我的應用程序,並打開(我只是想,如果可執行文件正在升級,可能會變壞)。謝謝! –