从 UWP 应用运行进程时出现"Access denied"错误



问题:在以下情况下,如何使用 UWP 应用中的 allowElevation 功能在具有 1809 更新的 Windows 10 桌面上以提升的权限执行代码。Stefan Wick 的这篇好文章解释了从 UWP 应用到 WPF 应用的类似功能用法,但就我而言,我使用的是类库而不是 exe。

详细信息:在VS2019的UWP项目中,我添加了.NET标准类库项目。我的一个 UWP 方法是调用我的类库项目的以下方法。但由于 UWP 的沙盒性质 - 正如预期的那样 - 应用在代码的第 Process.Start() 行引发Access denied错误。

public void Process_Start_Test()
{
   using (Process myProcess = new Process())
   {
       myProcess.StartInfo.UseShellExecute = false;
       myProcess.StartInfo.FileName = @"C:DotNET2019UWPTestFolderMyExeApp.exe";
       myProcess.StartInfo.CreateNoWindow = true;
       myProcess.Start(); //Access denied error here
   }
}

>不能从沙盒 UWP 应用引用的 .NET 标准库中调用Process.Start

你需要创建一个实际的提升进程(.exe(,调用Process.Start,正如Stefan的博客文章所解释的那样。

完全信任.exe当然可以引用定义Process_Start_Test()的类库,但无论该方法是否在库中定义,都必须从完全信任进程中调用该方法。

相关内容

最新更新