从Program Files文件夹中的代码中调用.exe作为Admin

时间:2013-09-05 09:09:21

标签: c#

我有一个调用.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();

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

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

将此<requestedExecutionLevel>更改为

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />