2012-10-17 120 views
2

您好我有一个像下面如何读取子项在注册表

HKLM 
    SOFTWARE 
     MYAPP 
      VER1 
      VER2 
      VER3 

注册表的结构一样,不胜枚举取决于有多少补丁安装上MYAPP的顶部。现在我想读取VER1,VER2 ...并且我想要捕获最后的VERX。如何读取MYAPP下的子项并找出最后一个子项。

回答

6

答案 - 如何读取注册表项(不是值)。

NSIS Scripting Reference

4.9.2.5 EnumRegKey

user_var(output) root_key subkey index 

设置用户变量$ X在 root_key \子项中的“index个注册表项的名称。 Root_key的有效值在 WriteRegStr下列出。如果没有其他键,则返回一个空字符串,并且 返回一个空字符串,并在出现错误时设置错误标志。

StrCpy $0 0 
loop: 
    EnumRegKey $1 HKLM Software $0 
    StrCmp $1 "" done 
    IntOp $0 $0 + 1 
    MessageBox MB_YESNO|MB_ICONQUESTION "$1$\n$\nMore?" IDYES loop 
done: 

你的情况:

EnumRegKey $1 HKLM "Software\MYAPP" $0