CreateProcess与ShellExecuteEx的选择问题(获取管理员权限)
主程序没有以管理员权限启动,在运行过程中可能需要安装驱动,因此需要提升为管理员权限。写了另外一个exe专门负责驱动安装。因此需要运行时以管理员权限去启动它。
我知道使用ShellExecuteEx加runas参数可以很容易的获取到管理员权限,但我需要通过主进程传递一个内核句柄给子进程,这点ShellExecuteEx似乎不支持句柄的继承(没有看到有inherit相关的参数)。
CreateProcess可以很容易地在父子进程间传递句柄,但它的升级版本CreateProcessAsUser如何能通过ShellExecuteEx的runas的方式简单地获取root权限?弹出那个“用户帐户控制”的界面是不是Explorer才会弹出的?网上看到很多代码,要么是本身是系统权限,通过复制自己的token来运行子进程,要么是去拿Explorer.exe的token,运行起来根本就不是系统权限。