簡體   English   中英

從Windows窗體應用程序安裝另一個應用程序

[英]Install another application from windows form application

我有一個Windows窗體應用程序,我試圖將其用作安裝程序中的所有其他工具的全部安裝程序。 這些工具均通過安裝程序進行安裝(按“下一步”,“完成”等)。

我想知道是否存在一種方法,不僅可以開始安裝這些安裝程序,還可以自動單擊它們,以便一鍵式安裝所有工具。

通過Windows窗體應用程序可以做到這一點嗎?

如果其他工具是Windows Installer msi文件,則可能可以靜默安裝它們,請參見例如MSI軟件包的靜默安裝 ,因此您的應用程序將通過使用Process.Start()運行msiexec.exe /qn firstSetup.msi來啟動進程。以此類推。

但是,有一個更優雅的解決方案

  • 為您提供完整捆綁包的setup.exe
  • 在添加/刪除程序中顯示了捆綁包,因此可以將其刪除。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM