我有一个调用.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”文件夹中。有没有办法总是以管理员身份运行此文件,而不是我的应用程序?
答案 0 :(得分:1)
只需向目标应用程序添加一个清单,说明它应该以admin身份运行。对此的责任通常在于启动应用程序,而不是启动它的应用程序。
例外情况是调用记事本来打开共享配置文件,但是您没有提供足够的详细信息来确定它。
答案 1 :(得分:1)
只需在项目中添加新的 Application manifest file
,然后
将此<requestedExecutionLevel>
更改为
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />