C# 我如何创建一个静默安装,而我不';你不需要按“下一步”按钮吗?

C# 我如何创建一个静默安装,而我不';你不需要按“下一步”按钮吗?,c#,process,installation,C#,Process,Installation,我正在尝试对正在下载的.exe进行静默安装。 下载方法与安装无关,因为它与安装无关 但是,当它下载完毕并且我已经启动了这个过程时,它不是按照我想要的方式安装(不必按“下一步”按钮),而是打开UAC请求管理权限。当我按YES时,它会打开.exe,我必须手动安装它 有没有办法按照我想要的方式安装它 Process process = new Process(); process.StartInfo.FileName = @"C:\PATH\Setup.exe"; process.StartInfo.

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

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

  • 完整用户界面:/qf(这是默认参数)
  • 减少的用户界面:/qr(用户界面不显示任何向导对话框)
  • 基本用户界面:/qb,/passive(测试期间仅显示进度条) 安装)
  • 无用户界面:/qn,/quiet(安装期间不会显示用户界面)
在Windows Vista及更高版本上,为了以静默方式安装软件包,安装软件包应运行提升。因此,调用setup.exe的父进程必须以管理员身份运行


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

如果您无法将原始安装程序打包到MSI中,那么您可以随时查看Auto-IT()

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


使用这一功能,你可以玩游戏,让“下一步”按钮在本质上被自动点击,从而实现你的目标

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

如果从命令行启动C:\PATH\Setup.exe/quiet,在UAC窗口中按“是”后,安装程序会安静地继续吗?如果这种行为持续存在,那么在不降低UAC安全性的情况下,您可能做不了什么。启动安装程序的过程将以开发的方式运行(具有管理员权限)?我想,您需要寻找特定于安装程序的方法。在这里可以找到通用安装程序的静默安装摘要:它实际上取决于执行安装的安装程序。如果不知道,就没有办法去做。。。那是什么呢?Wise、安装、安装屏蔽、MSI?