我有一个程序,用户有时希望以管理权限重新启动以执行管理任务。 目前,它有一个菜单项,可以进行以下调用:
Process.Start(new ProcessStartInfo("self.exe") { Verb = "runas" })
如果程序是使用MSI安装的,那么这是有效的。它显示通常的UAC提示,允许用户提升程序。
但是,使用Desktop Bridge转换器转换并安装Store方式时,由于权限不足,此调用将崩溃。我是否有另一种方式(重新)启动UAC提示?
或者,是否可以使用COM执行提升?
我在发布分支,Creators Update btw
答案 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密钥的尝试都将失败。