【问题标题】:How do I create a silent install, where I don't need to press the next button?如何创建无需按下一步按钮的静默安装?
【发布时间】:2018-12-15 00:33:41
【问题描述】:

我正在尝试对正在下载的 .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();

【问题讨论】:

  • 如果您从命令行启动 C:\PATH\Setup.exe /quiet,在 UAC 窗口中按 YES 后安装程序会安静地进行吗?如果该行为持续存在,那么在不降低 UAC 安全性的情况下,您可能无能为力。
  • 您启动安装程序的进程是否已升级(具有管理员权限)?
  • 我猜,您需要寻找特定于安装程序的方法。可以在此处找到通用安装程序的静默安装摘要:unattended.sourceforge.net/installers.php
  • 它实际上取决于执行安装的安装程序。不知道就没有办法做到……那是什么?明智、设置、InstallShield、微星?

标签: c# process installation


【解决方案1】:

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

  • 完整的 UI:/qf(这是默认参数)
  • 简化的 UI:/qr(用户界面不显示任何向导对话框)
  • 基本用户界面:/qb、/passive(在 安装)
  • 没有 UI:/qn、/quiet(安装过程中不会显示 UI)

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

如果您想静默安装 exe,那么您需要做的事情还有很多。但这取决于您尝试安装的安装包类型。找出创建包的安装程序软件是什么,然后查找指定给包的文档。如果可能的话,您需要在允许静默运行 exe 的文档中查找命令行参数。此外,您还必须确定软件包是按用户安装还是按机器安装,因为各种权限决定了提升类型。

【讨论】:

    【解决方案2】:

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

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

    使用它,您可以玩转并让“下一步”按钮在本质上被自动点击,从而实现您的目标。

    【讨论】:

      【解决方案3】:

      如果您的安装程序是 InstallShield,您可以使用以下命令:setup.exe /s /v/qb 用于带有基本 MSI UI 的静默安装或setup.exe /s /v/qn 用于不带任何 UI 的静默安装。 看看这个问题https://stackoverflow.com/a/39047467/5675763可能会有帮助。

      【讨论】:

        猜你喜欢
        • 2020-10-29
        • 1970-01-01
        • 2021-05-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多