c++ - 在 Vista 上调用 CoCreateInstance 时是否可以降低权限级别?

标签 c++ com windows-vista uac

好的,我有一个 IE 插件,安装后需要(在用户许可的情况下)重新启动 IE。

为此,我有一个由安装程序调用的 DLL。它可以工作,但问题是当 IE 在 Vista 上重新启动时,它以安装程序的管理员权限重新启动,这是一个问题,原因有很多。

我正在使用 CoCreateInstance 来启动 IE,以便我获得 IWebBrowser2 接口(interface)的一个实例以便对其执行一些操作。

所以我的问题是,是否可以从以管理员权限运行的应用程序调用 CoCreateInstance,从而使生成的 COM 对象实例继承基本用户权限而不是调用应用程序的管理员权限?

最佳答案

好的,我从这里找到了解决方案:

http://social.msdn.microsoft.com/Forums/cs-CZ/ieextensiondevelopment/thread/78a2bc18-1920-4e58-af7e-48dbcebe7643

我需要从我的安装程序 DLL 启动一个新线程,模拟该线程上的当前用户,然后设置低完整性级别,并使用 CLSCTX_ENABLE_CLOAKING 上下文创建 COM 实例。

关于c++ - 在 Vista 上调用 CoCreateInstance 时是否可以降低权限级别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1304847/

相关文章:

c++ - 如何在 C++ 中从映射创建倒排索引到映射?

c++ - 指针的问题

c++ - LNK 2001 单例上未解析的外部符号

c++ - 退出后调试崩溃? (主要返回后)

.net - 我可以在 Vista 上监听端口(使用 HttpListener 或其他 .NET 代码)而不需要管理员权限吗?

windows-7 - 如何将 UAC 盾牌图标添加到仍然必须以 XP 为目标的程序中?

c++ - unordered_map - 与自定义指针键一起使用的正确方法

c# - Sharepoint 客户端对象模型设置 ModifiedBy 字段

c# - C#/WSC (COM) 互操作中的 FatalExecutionEngineError

c# - COM 返回不实现任何接口(interface)的类型