如何使用Desktop Bridge以管理员身份启动程序

时间:2017-06-30 16:35:27

标签: uac desktop-bridge

我有一个程序,用户有时希望以管理权限重新启动以执行管理任务。 目前,它有一个菜单项,可以进行以下调用:

Process.Start(new ProcessStartInfo("self.exe") { Verb = "runas" })

如果程序是使用MSI安装的,那么这是有效的。它显示通常的UAC提示,允许用户提升程序。

但是,使用Desktop Bridge转换器转换并安装Store方式时,由于权限不足,此调用将崩溃。我是否有另一种方式(重新)启动UAC提示?

或者,是否可以使用COM执行提升?

我在发布分支,Creators Update btw

1 个答案:

答案 0 :(得分:1)

  

我是否还有另一种方式(重新)启动UAC提示?

没有。根据此页面(https://docs.microsoft.com/en-us/windows/uwp/porting/desktop-to-uwp-prepare,查找您的应用需要UIAccess ),似乎目前不支持从您的应用中请求UAC提示的

请记住,作为UWP应用,它需要在interactive user运行时工作。

来自MSDN的一篇为期一年的帖子回答了类似的问题:https://social.msdn.microsoft.com/Forums/en-US/a35b4c70-5fc6-4f1a-b80a-b11ee90105eb/uwpdesktop-bridgeproject-centennial-appconverter-convert-admin-apps?forum=wpdevelop

  

或者,是否可以使用COM执行提升?

鉴于上述发现,答案可能是否定的。

如果我在你的位置,我会重新考虑这些Administrative tasks。它们甚至可能是你无法作为UWP应用程序运行的东西。例如,任何创建HKLM密钥的尝试都将失败。