Простой инсталлер, ожидание завершения процесса - C#

Узнай цену своей работы

Формулировка задачи:

Всем доброго. Пишу небольшой инсталлер, из которого надо установить два приложения (оба внешние, лежат в папке с exe-шником программы). Реализовываю выбор через радиобаттоны (первый - оба приложения, второй -первое, третий - второе) И собственно вопрос - никак не удается реализовать ожидание в первом пункте (установка двух приложений) ожидания завершения установки первого Все висит на буттонклике:
private void button1_Click(object sender, EventArgs e)
        {
            //Тут какбы все понятно - переменной myInstaller_1 присваиваем
            //имя файла из которого он будет установлен
            string myInstaller_1 = "./Soft/MyApp_1.exe";
            //Тоже самое для myInstaller_2
            string myInstaller_2 = "./Soft/MyApp_2.exe";
            
            //тут мы проверяем - хочет ли пользователь установить MyApp_1 и MyApp_2
            if (radioButton1.Checked == true)
            {
                MessageBox.Show("Ставим MyApp_1!\n");//Для отладки
                Process runApp_1 = new System.Diagnostics.Process();
                runApp_1.StartInfo.FileName = myInstaller_1;
                runApp_1.Start();
                runApp_1.WaitForExit();
                
                MessageBox.Show("Ставим MyApp_2!\n");//Для отладки
                Process runApp_2 = new System.Diagnostics.Process();
                runApp_2.StartInfo.FileName = myInstaller_2;
                runApp_2.Start();                
            }
            //Только MyApp_1
            if (radioButton2.Checked == true)
            {
                MessageBox.Show("Ставим MyApp_1!\n");
                Process runApp_1 = new System.Diagnostics.Process();
                runApp_1.StartInfo.FileName = myInstaller_1;
                runApp_1.Start();
            }
            //Только MyApp_2
            if (radioButton3.Checked == true)
            {
                MessageBox.Show("Ставим Агент!\n");
                Process runApp_2 = new System.Diagnostics.Process();
                runApp_2.StartInfo.FileName = myInstaller_2;
                runApp_2.Start();
            }
В общем runApp_1.WaitForExit() не работает. Второй процесс стартует сразу за мессадж боксом.

Решение задачи: «Простой инсталлер, ожидание завершения процесса»

textual
Листинг программы
start /wait %*

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.067 из 5