我有一个场景,我需要从我的 .NET 应用程序启动一个 EXE,但我无法绕过弹出的 UAC 提示。提示甚至在另一个 EXE 启动之前就被触发了——可能是在调用Process.Start
.
我使用此代码启动应用程序:
var info = new ProcessStartInfo(path, "params");
info.Verb = "runas";
try
{
Process.Start(info);
}
catch (System.ComponentModel.Win32Exception)
{
// Person denied UAC escallation
return false;
}
两个 EXE(我的应用程序和另一个 EXE)都在它们的清单中定义了这个:
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
如何在不触发 UAC 提示的情况下执行另一个 EXE,并使其具有与调用应用程序相同的访问令牌(因此它可以更改应用程序文件夹等中的文件)?