我对c#这个论坛很新,但就我而言,我没有看到任何像我这样的问题可以解决我的问题。
我正在调用方法Process.WaitForExit()
,等待安装文件完成安装。但是,该方法似乎将UAC视为“进程”,并在UAC上单击“确定”后激活。在代码进行之前是否有更好的方法等待安装过程完成?或者我做错了吗?手动禁用UAC(如果可能的话)是禁止的,除非它以编程方式完成。
以下是代码的一部分:
编辑:正确调用流程
Process netInstall = Process.Start(filePath + "\\Installer.exe");
netInstall.WaitForExit();
Console.WriteLine("Installation Finished!");
编辑2:如果我说我正在安装MySQL Server 5.6,它会有帮助吗?似乎除了安全警告之外,它还会在启动之前弹出并关闭一些窗口。问候。
答案 0 :(得分:0)
代码不正确。您创建Process类的实例,然后调用静态方法Process.Start,它创建一个新的Process实例。
您的代码应如下所示:
Process netInstall = Process.Start(filePath + "\\Installer.exe");
netInstall.WaitForExit();
Console.WriteLine("Installation Finished!");
答案 1 :(得分:0)
使用提升的权限运行您的应用程序:
<requestedExecutionLevel level="requireAdministrator">
还要考虑BasyStallion的答案并正确启动netInstall