我的 MFC 应用程序通常以管理员权限运行,但是,有一项操作需要管理员权限(激活必须将状态保存到 HKLM 的软件)。
现在,我创建了两个 .exe 文件:普通应用程序和“Activation.exe”,它必须以管理员身份运行,并且在 Manifest 中有 requestExecutionLevel=requireAdministrator。激活是通过一个使 ShellExecute(Activation.exe) 的按钮开始的。
但是,这两个应用程序共享大量代码,因此我想将两个 exe 合并为一个 exe。但是我如何确保代码的特定部分以管理员权限执行?这种方法应该/必须兼容到 NT4。
一种想法是使用开关(例如“myapp.exe -activate”)将 Activation.exe 的功能集成到主 exe 中。一个小的引导程序确保它只能以管理员身份运行(Manifest 中的 requireAdministrator),并且只执行 ShellExec(myapp.exe -activate)。但这真的是最好的方法吗?