从C#中运行安装程序

时间:2011-07-28 08:36:16

标签: c# processstartinfo

我需要编写代码来下载和运行程序,例如记事本++(npp.5.9.3.Installer.exe)可以在网上找到。 我用ProcessStartInfo类运行它。但是,当我通常执行notepad ++安装程序时,它会在实际安装之前向我显示几个步骤,例如选择语言,路径等。

有没有办法以编程方式跳过这些步骤,并安装软件?我希望我的问题很清楚。如果它有帮助,我还附上到目前为止只启动安装程序的方法

        private int RunFile()
        {
            ProcessStartInfo psi = new ProcessStartInfo(GetFileFullPath());
            psi.WindowStyle = ProcessWindowStyle.Hidden;
            psi.CreateNoWindow = true;

            using (Process process = Process.Start(psi))
            {
                process.WaitForExit();
                if (process.HasExited)
                    return process.ExitCode;
            }
        }

我可以传递一些论据吗? 提前谢谢。

此致

5 个答案:

答案 0 :(得分:4)

使用npp.5.9.3.Installer.exe /S无人值守安装notepad ++,%ProgramFiles%\Notepad++\uninstall.exe /S用于卸载。

答案 1 :(得分:2)

有些安装程序支持-s或-silent开关,这意味着当您通过将-s切换到安装程序来安装软件时,它将使用默认选项进行静默安装。尝试确定您的安装程序是否支持

答案 2 :(得分:1)

您必须驱动模拟用户的安装。可以从C#应用程序向其他窗口发送一种命令(消息)

看看下面的

http://social.msdn.microsoft.com/forums/en-US/winforms/thread/345d85e8-cc5f-4508-b3f2-74ee43521169/

Interact with other desktop-applications in windows using C# winforms

答案 3 :(得分:1)

一个编写良好的安装程序可以选择没有用户界面的静默安装。如果安装程序是.msi文件,则options可以传递给msiexec以进行静默安装。

对于其他安装系统,有时可以选择。在没有用户参与的情况下自动安装是系统管理员的常见任务,因此如果您对特定安装包有疑问,我会在ServerFaultAppDeploy询问。不幸的是,有很多不良的安装程序不支持静默安装。

答案 4 :(得分:1)

这仅取决于安装程序( npp.5.9.3.Installer.exe )。您必须搜索安装程序是否提供可在命令行中使用的选项,例如silentinstall

编辑:您可以使用Notepad ++的/ S(大写S)选项执行静默安装。