我的MFC應用程序通常以管理員權限運行,但是,有一項操作需要管理員權限(激活狀態必須保存到HKLM的軟件)。在混合用戶/管理窗口中處理管理權限應用程序
現在,我創建了兩個.exe文件:普通應用程序和「Activation.exe」,它們必須作爲管理員運行並且在清單中具有requestedExecutionLevel = requireAdministrator。激活是通過一個使ShellExecute(Activation.exe)的按鈕開始的。
但是,兩個應用程序共享很多代碼,所以我想將兩個exe文件合併到一個exe文件中。但是,如何確保代碼的特定部分以管理員權限執行?這種方法應該/必須兼容到NT4。
一個想法是使用開關(例如「myapp.exe -activate」)將Activation.exe的功能集成到主exe文件中。一個小引導程序確保它只能以admin身份運行(在Manifest中爲requireAdministrator)並且只能執行ShellExec(myapp.exe -activate)。但這真的是最好的方法嗎?