office 插件开发 -- 64位系统注册表问题

 1 HKLM
 2 {
 3     NoRemove SOFTWARE
 4     {
 5         NoRemove Microsoft
 6         {
 7             NoRemove Office
 8             {
 9                 NoRemove Word
10                 {
11                     NoRemove Addins
12                     {
13                         ForceRemove WordClientDemo.WordAddinDemo
14                         {
15                             var 'FriendlyName' = s 'WordAddinDemo'
16                                 var 'LoadBehavior' = d '3'
17                                 var 'Description' = s 'WordAddinDemo'
18                                 var 'CommandLineSafe' = d '0'
19                         }
20                     }                
21                 }
22             }
23         }
24     }
25 }

在32位系统中这样写注册表没有问题,但是在64位系统中不行。

64 位版本 Windows 中的注册表分为 32 位注册表项和 64 位注册表项。

32 位注册表项显示在以下注册表项下:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node

也就是说32位的程序是从上面路径读取注册表值的,所以上述代码应改成

 1 HKLM
 2 {
 3     NoRemove SOFTWARE
 4     {
 5         NoRemove Wow6432Node 
 6         {
 7             NoRemove Microsoft
 8             {
 9                 NoRemove Office
10                 {
11                     NoRemove Word
12                     {
13                         NoRemove Addins
14                         {
15                             ForceRemove WordClientDemo.WordAddinDemo
16                             {
17                                 var 'FriendlyName' = s 'WordAddinDemo'
18                                 var 'LoadBehavior' = d '3'
19                                 var 'Description' = s 'WordAddinDemo'
20                                 var 'CommandLineSafe' = d '0'
21                             }
22                         }                
23                     }
24                 }
25             }
26         }
27     }
28 }

 

更具体可以参考:

http://blog.csdn.net/pbymw8iwm/article/details/6931120

posted on 2014-06-07 10:21  aoun  阅读(590)  评论(0)    收藏  举报