3

我有一个调用 .exe 文件的 C# 应用程序。此可执行文件必须以管理员权限启动。但我不想以管理员权限运行我的应用程序。
我为此使用以下代码:

ProcessStartInfo procStartInfo = new ProcessStartInfo("foo.exe");
procStartInfo.RedirectStandardOutput = true;
procStartInfo.UseShellExecute = false;
procStartInfo.CreateNoWindow = true;
procStartInfo.Verb = "runas";
Process proc = new Process();
proc.StartInfo = procStartInfo;
proc.Start();
proc.WaitForExit();

如果我把我的应用程序放在没有特定的文件夹中,一切正常,调用可执行文件时,用户被要求以管理员身份运行它。但是当我将我的应用程序放在“程序文件”文件夹中并启动它时,在调用执行文件时,以管理员身份运行它是没有问题的。因此,执行失败。
我使用的是 Windows 7,可执行文件不在“Program Files”文件夹中。有没有办法始终以管理员身份运行此文件而不是我的应用程序?

4

2 回答 2

1

只需Application manifest file在您的项目中添加一个新的,然后

将其更改<requestedExecutionLevel>

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
于 2013-09-05T09:31:35.357 回答
1

只需向目标应用程序添加一个清单,说明它应该以管理员身份运行。对此的责任通常在于正在启动的应用程序,而不是启动它的应用程序。

例外情况是调用记事本打开共享配置文件,但您没有提供足够的详细信息来确定这一点。

于 2013-09-05T09:24:40.550 回答