亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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 關注
  • 126 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號