为了账号安全,请及时绑定邮箱和手机立即绑定

Wpf应用程序批量安装

Wpf应用程序批量安装

C#
互换的青春 2023-07-22 16:28:34
您好,我有一个包含多个程序 .exe 的文件夹,我想制作一个按钮,单击后它将启动所有安装,但必须等待一个安装完成才能启动另一个安装。我还需要取消按钮来停止进程。我需要在 wpf 中制作这个。尝试使用复选框,但一旦全部选中并单击按钮,则仅启动一个安装。
查看完整描述

1 回答

?
阿晨1998

TA贡献2037条经验 获得超6个赞

一般来说,如果您正在运行一堆安装并希望按顺序运行它们,我会设置一个Task.Factory或BackgroundWorker这样您就不会阻塞 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 更多的是一个解决问题的特定地方,而不是如何编写一些东西。


查看完整回答
反对 回复 2023-07-22
  • 1 回答
  • 0 关注
  • 92 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信