WaitForExit() активируется на UAC или Security Warning

Я довольно новичок в C# и на этом форуме в целом, но, насколько я понимаю, я не видел ни одного вопроса, подобного моему, который решит мою проблему.

Я вызываю метод Process.WaitForExit() дождаться окончания установки установочного файла. Тем не менее, метод, кажется, рассматривает UAC как "процесс" и активируется после того, как я нажимаю OK на UAC. Есть ли лучший способ дождаться завершения процесса установки, прежде чем код продолжится? Или я делаю это неправильно? Отключение UAC вручную (если это возможно) бесполезно, если только это не сделано программно.

Вот часть кода:

Изменить: правильное вызов процесса

Process netInstall = Process.Start(filePath + "\\Installer.exe");
netInstall.WaitForExit();
Console.WriteLine("Installation Finished!");

Изменить 2: это поможет, если я скажу, что я устанавливаю MySQL Server 5.6? Кажется, что, кроме предупреждения о безопасности, он всплывает и закрывает некоторые окна, прежде чем он тоже запустится. С уважением.

2 ответа

Код не верный. Вы создаете экземпляр класса Process, но затем вызываете статический метод Process.Start, который создает новый экземпляр Process.

Ваш код должен выглядеть так:

Process netInstall = Process.Start(filePath + "\\Installer.exe");
netInstall.WaitForExit();
Console.WriteLine("Installation Finished!");

Запустите ваше приложение с повышенными привилегиями:

<requestedExecutionLevel level="requireAdministrator">

Также рассмотрите ответ BasyStallion и правильно запустите netInstall

Другие вопросы по тегам