[英]Install another application from windows form application
我有一個Windows窗體應用程序,我試圖將其用作安裝程序中的所有其他工具的全部安裝程序。 這些工具均通過安裝程序進行安裝(按“下一步”,“完成”等)。
我想知道是否存在一種方法,不僅可以開始安裝這些安裝程序,還可以自動單擊它們,以便一鍵式安裝所有工具。
通過Windows窗體應用程序可以做到這一點嗎?
如果其他工具是Windows Installer msi文件,則可能可以靜默安裝它們,請參見例如MSI軟件包的靜默安裝 ,因此您的應用程序將通過使用Process.Start()
運行msiexec.exe /qn firstSetup.msi
來啟動進程。以此類推。
但是,有一個更優雅的解決方案
Windows Installer Xml工具包(WiX)中包含的“刻錄”工具。 它允許您指定一組打包文件,這些打包文件可以是可執行文件,msi文件等,並像單個安裝程序一樣安裝它們。 捆綁軟件設置可以使用GUI(稱為引導應用程序)。
WiX隨附了一個標准的引導程序, http: //wixtoolset.org/documentation/manual/v3/bundle/wixstdba/
但是您可以選擇將自己的引導程序應用程序作為WPF dll進行創建,例如: http : //bryanpjohnston.com/2012/09/28/custom-wix-managed-bootstrapper-application/ http://neilsleightholm.blogspot.se /2012/10/wix-bootstrapper-application.html
WiX項目甚至與VS集成在一起,因此您可以直接在IDE中構建它們。
除非其他應用程序的安裝程序公開了自動化的API(這不太可能),否則您將不得不使用Windows API來實現您的目標。 您將必須使用FindWindow來獲取安裝程序頂級窗口的句柄,使用FindWindowEx來獲取適當的子窗口(例如,文本框和按鈕)的句柄,然后使用SendMessage來設置文本並單擊。 這種組合非常普遍,因此您可以找到很多示例。 問題是您實際上必須多次運行這些安裝程序,才能確定需要訪問哪些窗口,然后測試代碼是否有效。
您可以制作一個.bat
文件並運行工具安裝程序,同時使用此參數
/qb
此參數使用默認值或您的預設設置安裝程序。 例如,如果您要安裝.Net freamework,則可以執行以下操作:
START /qb /norestart dotnet\dotNetFx40.exe
將命令寫入.bat
文件,然后在Windows窗體應用程序中調用該命令進行設置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.