从Windows窗体应用程序安装另一个应用程

时间:2014-02-05 21:40:44

标签: c# winforms

我有一个Windows窗体应用程序,我试图用作安装程序的全部其他工具。这些工具中的每一个都通过安装程序安装(按next,finish等)。

我想知道是否有办法不仅可以开始安装这些安装程序,还可以自动点击它们,这样只需点击一下,我就可以自行安装所有工具。

这可以通过Windows窗体应用程序实现吗?

3 个答案:

答案 0 :(得分: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附带标准的bootstrapper应用程序, 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中构建它们。

答案 1 :(得分:1)

除非其他应用程序的安装程序公开自动化API,这是不可能的,否则您将不得不使用Windows API来实现您的目标。您必须使用FindWindow来获取安装程序的顶级窗口FindWindowEx的句柄,以获取适当子窗口的句柄,例如:文本框和按钮,然后SendMessage设置文本并单击。这种组合很常见,所以你可以找到很多例子。问题是您实际上必须多次运行这些安装程序以确定您需要访问哪些窗口,然后测试您的代码是否正常工作。

答案 2 :(得分:0)

您可以创建.bat文件并在此参数

时运行工具安装程序
/qb

此参数使用默认值或预设设置安装程序。 例如,如果要安装.Net freamework,可以执行以下操作:

START /qb /norestart dotnet\dotNetFx40.exe

将您的命令写入.bat文件,并在Windows窗体应用程序中调用它进行设置。