Wpf应用程序批量安装

您好,我有一个包含多个程序 .exe 的文件夹,我想制作一个按钮,单击后它将启动所有安装,但必须等待一个安装完成才能启动另一个安装。

我还需要取消按钮来停止进程。

我需要在 wpf 中制作这个。

尝试使用复选框,但一旦全部选中并单击按钮,则仅启动一个安装。


互换的青春
浏览 93回答 1
1回答

阿晨1998

一般来说,如果您正在运行一堆安装并希望按顺序运行它们,我会设置一个Task.Factory或BackgroundWorker这样您就不会阻塞 UI 线程。我还会确保您使用 MVVM 来完成这一切,以使其变得更容易。我首先为安装设置一个帮助程序类。如果使用 MVVM,这个类的设置显然会有所不同。public class Programs{&nbsp; &nbsp; public string InstallName = "";&nbsp; &nbsp; public string InstallPath = "";&nbsp; &nbsp; public bool ExecuteInstall = false;&nbsp; &nbsp; public int InstallProcessID = 0;}然后设置这些集合,并根据您的复选框将它们标记为运行或不运行。使用 MVVM,您可以将executeInstall 直接绑定到复选框。然后是一个可以工作并由单独的线程调用的函数。关键在于调用以及如何使用 Process&nbsp; &nbsp; &nbsp; &nbsp; try&nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; using (Process myProcess = new Process())&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; myProcess.StartInfo.FileName = <Your program collection object>.InstallPath;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; myProcess.Start();&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <Your program collection object>.InstallProcessID = myProcess.Id;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; myProcess.WaitForExit();&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // Any follow up code after install has completed.&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; catch (Exception ex)&nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // Error message that uses ex&nbsp; &nbsp; &nbsp; &nbsp; }取消按钮可以查找进程 ID,然后终止该进程。您还可以创建一个临时 int var 来存储安装应用程序的当前进程 ID,而不是让它在集合中设置某些内容。这就是总体思路。我建议更多地学习程序设计,因为 stackoverflow 更多的是一个解决问题的特定地方,而不是如何编写一些东西。
打开App,查看更多内容
随时随地看视频慕课网APP