2014-02-05 82 views
2

我有一個Windows窗體應用程序,我試圖使用它作爲一個安裝程序中的一套其他工具。這些工具中的每一個都通過安裝程序進行安裝(通過按下,完成等)。從Windows窗體應用程序安裝另一個應用程序

我想知道是否有辦法不僅啓動這些安裝程序的安裝,而且還會自動點擊它們,只需點擊一下,我就可以自行安裝所有工具。

這是可能通過Windows窗體應用程序?

+0

你寫了其他工具嗎? –

+2

如果他們使用[msiexec,您可以調用靜默安裝的命令行參數](http://technet.microsoft.com/en-us/library/cc759262(v = ws.10).aspx)。 –

+0

你正在使用哪個安裝程序? – Felipe

回答

2

如果其他工具是Windows安裝程序MSI文件,你或許可以安裝他們默默地,參見例如Silent installation of a MSI package,讓您的應用程序將使用Process.Start()運行msiexec.exe /qn firstSetup.msi等推出的進程。

然而,有一個更優雅的解決方案,

  • 爲您提供了完整的束
  • 一個Setup.exe顯示加管束/刪除程序,因此它可以被刪除。

「燒傷」工具包含在Windows Installer Xml Toolkit (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的項目(S)連與VS集成,以便您可以直接在IDE中構建它們。

+0

這是完美的!非常感謝! –

1

除非其他應用程序的安裝程序公開自動化的API,這不太可能,那麼您將不得不使用Windows API來實現您的目標。您將不得不使用FindWindow來獲取安裝程序頂級窗口的句柄FindWindowEx以獲取適當子窗口的句柄,例如,文本框和按鈕,然後使用SendMessage設置文本並單擊。這種組合非常常見,所以你可以找到大量的例子。問題在於,您實際上必須多次運行這些安裝程序才能確定需要訪問哪些窗口,然後測試您的代碼是否正常工作。

0

,您可以撥打.bat文件,並使用默認值或者您的預置運行工具安裝程序時,該參數

/qb 

這個參數設置安裝程序。 例如,如果你想安裝.Net freamework你可以這樣做:

START /qb /norestart dotnet\dotNetFx40.exe 

.bat文件撰寫您的命令,並把它在你的Windows窗體應用程序設置。

相關問題