好的,我有一个 IE 插件,安装后需要(在用户许可的情况下)重新启动 IE。
为此,我有一个由安装程序调用的 DLL。它可以工作,但问题是当 IE 在 Vista 上重新启动时,它以安装程序的管理员权限重新启动,这是一个问题,原因有很多。
我正在使用 CoCreateInstance 来启动 IE,以便我获得 IWebBrowser2 接口(interface)的一个实例以便对其执行一些操作。
所以我的问题是,是否可以从以管理员权限运行的应用程序调用 CoCreateInstance,从而使生成的 COM 对象实例继承基本用户权限而不是调用应用程序的管理员权限?
最佳答案
好的,我从这里找到了解决方案:
我需要从我的安装程序 DLL 启动一个新线程,模拟该线程上的当前用户,然后设置低完整性级别,并使用 CLSCTX_ENABLE_CLOAKING 上下文创建 COM 实例。
关于c++ - 在 Vista 上调用 CoCreateInstance 时是否可以降低权限级别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1304847/