如何创建静默安装,我不需要按下一个按钮?

时间:2017-03-30 08:50:00

标签: c# process installation install

我试图安装我正在下载的.exe文件。 下载方法无关紧要,因为它与安装无关。

然而,当它完成下载并且我已经开始了这个过程,而不是按照我想要的方式安装它(不必按下一个按钮)它只是打开UAC请求管理权限。当我按YES时,它会打开.exe,我必须手动安装它。

有没有办法以我想要的方式安装它?

Process process = new Process();
process.StartInfo.FileName = @"C:\PATH\Setup.exe";
process.StartInfo.Arguments = "/quiet";
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.Start();
process.WaitForExit();

3 个答案:

答案 0 :(得分:1)

执行exe的无提示安装并不容易。最简单的方法是使用msi包来实现这一目标。因此,您必须从exe中提取msi并使用以下参数之一调用它:

  • 完整用户界面:/ qf(这是默认参数)
  • 缩小的UI:/ qr(用户界面不显示任何向导对话框)
  • 基本用户界面:/ qb,/被动(在此期间仅显示进度条) 安装)
  • 没有UI:/ qn,/ quiet(安装过程中不显示UI)

在Windows Vista及更高版本上,为了以静默方式安装软件包,安装包应该提升。因此,调用setup.exe的父进程必须以管理员身份运行。

如果你想安静地安装一个exe,那么你还有很多工作要做。但这取决于您尝试安装的安装包类型。找出创建包的安装程序软件是什么,然后查找指定给包的文档。您需要在文档中查找允许以静默方式运行exe的命令行参数(如果可能)。除了你必须确定软件包是按用户还是按机器安装,因为各种权限决定了高程类型。

答案 1 :(得分:0)

如果您无法将原始安装程序打包到MSI中,那么您可以随时查看Auto IT(https://www.autoitscript.com/site/autoit/

  

AutoIt v3是一种免费的类似BASIC的脚本语言,用于自动化Windows GUI和通用脚本。它使用模拟击键,鼠标移动和窗口/控制操作的组合,以便以其他语言(例如VBScript和SendKeys)不可能或不可靠的方式自动执行任务。 AutoIt也非常小,独立,可以在开箱即用的所有Windows版本上运行,不需要烦人的“运行时”!

使用此功能,您可以玩游戏并获得“下一步”按钮,从根本上自动点击,实现您的目标。

答案 2 :(得分:0)

如果您的安装程序是InstallShield,则可以使用此命令:BOOST_LIBRARYDIR进行基本MSI UI的静默安装,或setup.exe /s /v/qb进行静默安装,无需任何UI。 看看这个问题https://stackoverflow.com/a/39047467/5675763这可能有所帮助。