我正在編寫一個小應用程序來安裝某些產品,並在靜默模式下卸載其他應用程序。
每個產品都有其MSI文件,沒有別的,我的應用程序清單聲明它應該以管理員權限運行。
用適當的參數運行msiexec
很容易,可以完成我的任務(只是一堆代碼),一切正常。
無論如何,有些軟件包需要花費大量的時間才能完成,而一些老用戶正在詢問是否某些東西仍然在後臺運行或者是掛起。
那麼是否有可能「趕上」msiexec
的進展,例如更新我的應用程序上的進度條?聽起來很瘋狂,但我敢肯定,一些專業的安裝程序以這種方式運行外部msi軟件包。
那麼,它可能嗎?在C#中我們可以做些什麼,或者這是一項非常艱鉅的任務,需要大量我沒有的知識?MsiExec progress catch
只是說明:我知道我可以使用"/qb"
param,但是某些軟件包的行爲不正確,我不想使用它。
剛一說明:我不認爲,你是正確的,「/ qb「對於某些軟件包的行爲與」/ qn「不同。根據我的長期經驗,我不知道這是真的。從技術上講,它們都不使用所謂的用戶序列,所以安裝行爲除了進度條和少量對話框以外都是相同的。事實上,UAC最近出現的行爲與從一開始就擁有管理權限的行爲有所不同,但這與「/ qb」本身無關。 – Philm