首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >导入针对.Reg的HKEY_CURRENT_USER文件会在其他蜂巢中创建附加条目

导入针对.Reg的HKEY_CURRENT_USER文件会在其他蜂巢中创建附加条目
EN

Stack Overflow用户
提问于 2022-02-01 04:19:29
回答 1查看 228关注 0票数 0

当我试图通过导入HKEY_CURRENT_USER文件将键写入.reg时,我需要帮助理解.reg创建的注册表项。

我在NSIS中编写了一个安装程序,它为标准用户安装软件,不需要管理员身份验证。安装程序只为当前用户安装软件。

我的软件包含两个使用COM的DLL,所以必须注册它们。但是,由于我的安装程序不请求Admin身份验证,所以我不能使用regasm。相反,我使用的是本文中描述的.reg文件导入技术:

注册没有管理权限/权限的.Net COM DLL

实际上,我使用RegAsm开关运行/regfile来创建.reg文件。然后,我将替换

[HKEY_CLASSES_ROOT\

使用

[HKEY_CURRENT_USER\

这些是RegAsm用HKEY_CLASS_ROOT创建的键(然后我用HKEY_CURRENT_USER替换它):

HKEY_CURRENT_USER\Software\Classes\MyDllLibrary.clsMyClass HKEY_CURRENT_USER\Software\Classes\CLSID{3B8612DE-E333-31D5-86DA-9ED6D4B14A1C} HKEY_CURRENT_USER\Software\Classes\CLSID{3B8612DE-E333-31D5-86DA-9ED6D4B14A1C}\InprocServer32\1.0.0.0 [HKEY_CURRENT_USER\Software\Classes\CLSID{3B8612DE-E333-31D5-86DA-9ED6D4B14A1C}\Implemented类别{62C8FE65-4 4EBB HKEY_CURRENT_USER\Software\Classes\MyDllLibrary.clsMyClass2 HKEY_CURRENT_USER\Software\Classes\CLSID{FCE641D6-51C1-3648-AB43-C1F9BB812FC5} HKEY_CURRENT_USER\Software\Classes\CLSID{FCE641D6-51C1-3648-AB43-C1F9BB812FC5}\InprocServer32\1.0.0.0 [HKEY_CURRENT_USER\Software\Classes\CLSID{FCE641D6-51C1-3648-AB43-C1F9BB812FC5}\Implemented类别{62C8FE65-4EBB-

导入上面的.reg文件后,让我感到惊讶的是,当我在注册表中搜索dll名称时,我发现已经在以下3处创建了键:

HKEY_CLASSES_ROOT HKEY_CURRENT_USER HKEY_USERS

我原以为只会在HKEY_CURRENT_USER中找到密钥。

这提出了两个问题:

  1. 如果键是写入HKEY_CLASSES_ROOT的,我想知道它是否正在为整个机器注册密钥(而不是只为当前用户)。
  2. 我的卸载程序“取消注册”Dlls,使用运行RegAsm /regfile开关的相同技术,然后替换

[HKEY_CURRENT_USER

使用

[-HKEY_CURRENT_USER

问题是,我的卸载程序只是删除HKEY_CURRENT_USER键,而HKEY_CLASSES_ROOT和HKEY_USERS键则被抛在后面。

我试图理解为什么Windows要编写这些附加的键,以及是否需要在卸载时清理它们。

下面是Windows创建条目的列表:

Computer\HKEY_CLASSES_ROOT\CLSID{3B8612DE-E333-31D5-86DA-9ED6D4B14A1C}\InprocServer32 Computer\HKEY_CLASSES_ROOT\CLSID{3B8612DE-E333-31D5-86DA-9ED6D4B14A1C}\InprocServer32\1.0.0.0 Computer\HKEY_CLASSES_ROOT\CLSID{FCE641D6-51C1-3648-AB43-C1F9BB812FC5}\InprocServer32 Computer\HKEY_CLASSES_ROOT\CLSID{FCE641D6-51C1-3648-AB43-C1F9BB812FC5}\InprocServer32\1.0.0.0 Computer\HKEY_CURRENT_USER\SOFTWARE\Classes\CLSID{3B8612DE-E 333-31D5-86DA-9ED6D4B14A1C}\InprocServer32 32 Computer\HKEY_CURRENT_USER\SOFTWARE\Classes\CLSID{3B8612DE-E333-31D5-86DA-9ED6D4B14A1C}\InprocServer32\1.0.0.0 Computer\HKEY_CURRENT_USER\SOFTWARE\Classes\CLSID{FCE641D6-51C1-3648-AB43-C1F9BB812FC5}\InprocServer32 Computer\HKEY_CURRENT_USER\SOFTWARE\Classes\CLSID{FCE641D6-51C1-3648-AB43-C1F9BB812FC5}\InprocServer32\1.0.0.0计算机\HKEY_USERS\S-1-5-21-529589846-3326646294-2506018130-1001\SOFTWARE\Classes\CLSID{3B8612DE-E333-31D5-86DA-9ED6D4B14A1C}\InprocServer32 Computer\HKEY_USERS\S-1-5-21-529589846-3326646294-2506018130-1001\SOFTWARE\Classes\CLSID{3B8612DE-E333-31D5-86DA-9ED6D4B14A1C}\InprocServer32\1.0.0.0 Computer\HKEY_USERS\S-1-5-21-529589846-3326646294-2506018130-1001\SOFTWARE\Classes\CLSID{FCE641D6-51C1-3648-AB43-C1F9BB812FC5}\InprocServer32电脑\HKEY_USERS1-5-21-529589846-3326646294-2506018130-1001\SOFTWARE\Classes\CLSID{FCE641D6-51C1-3648-AB43-C1F9BB812FC5}\InprocServer32\1.0.0.0 Computer\HKEY_USERS\S-1-5-21-529589846-3326646294-2506018130-1001_Classes\CLSID{3B8612DE-E333-31D5-86DA-9ED6D4B14A1C}\InprocServer32 Computer\HKEY_USERS\S-1-5-21-529589846-3326646294-2506018130-1001_Classes\CLSID{3B8612DE-E333-31D5-86DA-9ED6D4B14A1C}\InprocServer32\1.0.0.0 Computer\HKEY_USERS\S-1-5-21-529589846-3326646294-2506018130-1001_Classes\CLSID{FCE641D6-51C1-3648-AB43-C1F9BB812FC5}\InprocServer32 Computer\HKEY_USERS\S-1-5-21-529589846-3326646294-2506018130-1001_Classes\CLSID{FCE641D6-51C1-3648-AB43-C1F9BB812FC5}\InprocServer32\1.0.0.0

请帮助我理解为什么创建这些密钥,如果有任何方法来清理他们使用reg文件导入技术,我被迫使用。

期待你的洞察力。

马太福音

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-01 04:47:37

它们只在一个地方创建。

HKEY_CLASSES_ROOT合并视图 of HKEY_CURRENT_USER\Software\ClassesHKEY_LOCAL_MACHINE\Software\Classes,它不存储自己的数据。

HKEY_CURRENT_USER只是一个符号链接 to HKEY_USERS\S-....,其中S.是您的用户帐户的SID。

理想情况下,您应该使用NSIS注册表函数,而不是.reg文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70935522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档