我制作了一个控制台应用程序,该应用程序应该更新一些注册表项,以便可以从64位应用程序访问32位COM组件。如果我拥有管理员权限,那么它会很好用,但是我似乎无法开箱即用管理员权限运行该应用程序。
这就是我所做的。
Configuration Properties > Linker > Manifest File > UAC Execution Level
并设置为requireAdministrator (/level='requireAdministrator')
。需要花很多时间才能弄清这一点,因为Web上的所有信息都是针对Visual Studio 2010或更早版本的,这需要手动创建XML清单文件,并且与由此创建的自动生成的文件相冲突。
但是,这似乎不足以使其以管理员身份运行。不能轻易找到此信息是一个真正的PITA。我还缺少其他步骤吗?像签名过程一样?
答案 0 :(得分:0)
事实证明,这个迷你应用程序的运行方式。
在我的主程序中,将ShellExecute()
或ShellExecuteEx()
与"runas"
动词一起使用将允许以管理员权限运行此可执行文件,而不会弹出UAC对话框。
但是,从命令行运行此应用程序将导致此微型应用程序在用户的安全上下文中执行,这就是我正在做的事情。