Warm tip: This article is reproduced from serverfault.com, please click

internet explorer-IE如何找到已注册的ActiveX控件

(internet explorer - how does IE find registered activex control)

发布于 2020-11-12 17:32:33

我正在用qt构建一个activex控件。如果我将其注册为control-name.exe /regserver,则IE11可以加载它。然后将寄存器条目写入HKEY_CLASSES_ROOTHKEY_LOCAL_MACHINE但是此Activex控件的用户没有管理员权限,因此我正在努力在此HKEY_CURRENT_USER级别上注册此com服务器

我试过将reg文件CLSIDinHKEY_LOCAL_MACHINE路径下的条目导出,并替换HKEY_LOCAL_MACHINEHKEY_CURRENT_USER,然后将该reg文件导入回来(并删除具有相同的其他条目CLSID)。但是IE11找不到Activex控件。这是否意味着IE11不在CLSIDin中寻找HKEY_CURRENT_USER,而仅在HKEY_LOCAL_MACHINEand中寻找HKEY_CLASSES_ROOT

我已经阅读了一些帖子和文章,但是仍然不确定是否可以实现“将com服务器注册没有IE加载权限的com服务器”的想法例如,如果我找到了一种将每个注册表放入HKEY_CURRENT_USER(仍在运行)的方法,则IE可以加载我的activex控件吗?

有什么帮助吗?提前致谢。

更新:这是我做测试的方式:

  1. control-name.exe /regserver以管理员用户身份运行
  2. 将注册表导出到.reg文件,然后删除这些注册表。
  3. 改变HKEY_CLASSES_ROOT HKEY_LOCAL_MACHINE HKEY_CURRENT_USER
  4. 使用没有管理员权限的用户登录,然后双击这些.reg文件。

我用RegCool搜索了注册表,发现注册表都在之下HKEY_CURRENT_USER/S-1-00.../...S-1-00...是一连串的数字)。

Questioner
YouCL
Viewed
11
Deepak-MSFT 2020-12-07 16:18:06

我建议你检查用户帐户是否具有尝试从中尝试以管理员身份安装控件的文件夹的访问权限?如果不是,则出于测试目的,尝试授予权限,并查看它是否对用户有效。