2

总的来说,我对 c# 和这个论坛还很陌生,但就我而言,我还没有看到像我这样的问题可以解决我的问题。

我正在调用该方法Process.WaitForExit()以等待安装文件完成安装。但是,该方法似乎将 UAC 视为“过程”,并在我单击 UAC 上的“确定”后激活。在代码继续之前,有没有更好的方法来等待安装过程完成?还是我做错了?手动禁用 UAC(如果可能的话)是不行的,除非它也以编程方式完成。

这是代码的一部分:

编辑:正确调用进程

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

编辑 2:如果我说我正在安装 MySQL Server 5.6,会有帮助吗?似乎除了安全警告之外,它还会在启动之前弹出并关闭一些窗口。问候。

4

2 回答 2

0

以提升的权限运行您的应用程序:

<requestedExecutionLevel level="requireAdministrator">

还要考虑 BasyStallion 答案并正确启动 netInstall

于 2013-07-18T11:31:15.727 回答
0

代码不正确。创建 Process 类的一个实例,然后调用静态方法 Process.Start,该方法创建一个新的 Process 实例。

您的代码应如下所示:

Process netInstall = Process.Start(filePath + "\\Installer.exe");
netInstall.WaitForExit();
Console.WriteLine("Installation Finished!");
于 2013-07-18T11:27:59.020 回答