WPF应用程序批量安装

时间:2019-07-27 12:10:45

标签: c# wpf

嗨,我的文件夹里面有多个程序。exe,我想单击一个按钮,它将启动所有安装,但必须等待一个结束才能启动另一个安装。

我还需要取消按钮,该按钮将停止进程。

我需要用wpf制作。

尝试使用复选框,但是一旦全部选中并单击按钮,就只能开始一个安装。

1 个答案:

答案 0 :(得分:0)

通常,如果您要运行大量安装并希望按顺序运行它们,我会设置一个Task.FactoryBackgroundWorker,这样您就不会阻塞UI线程了。我还要确保您使用MVVM来简化所有操作。

我将从为安装设置帮助程序类开始。如果要进行MVVM,则此类的设置显然会有所不同。

public class Programs
{
    public string InstallName = "";
    public string InstallPath = "";
    public bool ExecuteInstall = false;
    public int InstallProcessID = 0;
}

然后根据您的复选框设置它们的集合并标记它们是否运行。使用MVVM,您可以将executeInstall直接绑定到一个复选框。

然后一个起作用的函数,并由一个单独的线程调用。关键在于调用以及如何使用Process

        try
        {
            using (Process myProcess = new Process())
            {
                myProcess.StartInfo.FileName = <Your program collection object>.InstallPath;
                myProcess.Start();
                <Your program collection object>.InstallProcessID = myProcess.Id;
                myProcess.WaitForExit();

                // Any follow up code after install has completed.
            }
        }
        catch (Exception ex)
        {
            // Error message that uses ex
        }

取消按钮可以查找进程ID,然后终止该进程。您也可以创建一个临时的int var来存储正在安装的应用程序的当前进程ID,而不用在集合中进行设置。

所以这是总的想法。我建议对程序设计进行更多研究,因为stackoverflow更加是特定问题而不是如何写东西的特定地方。