windows注册表各个目录的区别,以及Excel插件的注册目录
HKEY_CLASSES_ROOT
HKEY_CLASSES_ROOT包含了所有应用程序运行时必需的信息,比如驱动程序,com组件等,没有它,计算机是不能启动的。访问HKEY_CLASSES_ROOT目录下的所有子健需要管理员权限。
HKEY_LOCAL_MACHINE
HKEY_LOCAL_MACHINE保存了注册表里的所有与这台计算机有关的配置信息,只是一个公共配置信息单元。换句话说,写在HKEY_LOCAL_MACHINE目录下面的子健,当前计算机上的用户是都可以进行读访问的,如果要进行写访问,还是需要管理员权限。
HKEY_CURRENT_USER
HKEY_CURRENT_USER管理系统当前的用户信息。在这个根键中保存了本地计算机中存放的当前登录的用户信息,包括用户登录用户名和暂存的密码。在用户登录Windows时,其信息从HKEY_USERS中相应的项拷贝到HKEY_CURRENT_USER中。每个用户(管理员和非管理员)都可以直接对这个目录下的所有子健进行读写访问,不需要提权。
Excel插件在注册表中的位置
Office Addin 要被加载就必须在注册表里写入特定的键值。32位和64位的目录不一样。
[32-bit platform, 32-bit office]/[64-bit platform, 64-bit office]: HKEY_CURRENT_USER\Software\Microsoft\Office\Excel\Addins[插件名称] 或 HKEY_LOCAL_MACHINE\Software\Microsoft\Office\Excel\Addins[插件名称]
[64-bit platform, 32-bit office] HKEY_CURRENT_USER\Software\Wow6432Node\Microsoft\Office\Excel\Addins[插件名称]或 HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Office\Excel\Addins[插件名称].
在以上键下面一般要有以下三个值:
Description->Add-in的描述、FriendlyName->Add-in名称、LoadBehavior-〉Add-in的加载状态(只有点这个值是3的时候,excel每次打开的时候,Add-in才会自动被加载。所以当excel启动后,插件并没有被加载起来的时候,请检查LoadBehavior值是否是3)
Office应用在加载Add-in时会先查询HKCU下有没有相应的项目如果有就加载然后再查询HKLM下相应的项目并加载。如果HKCU和HKLM下有重复的键则优先加载HKCU下的。也就说在HKCU和HKLM下可以有同名的Add-in但是Office只会加载HKCU下面的Add-in。