NSISI基本语法---注册表的操作

1、WriteRegStr

作用:把字符串写入注册表。

WriteRegStr HKLM "Software\My Company\My Software" "String Value" "dead beef"

2、WriteRegExpandStr

作用:将一个字符串写入注册表

root_key  必须是以下之一:

  • HKCR  或  HKEY_CLASSES_ROOT
  • HKLM  或  HKEY_LOCAL_MACHINE
  • HKCU  或  HKEY_CURRENT_USER
  • HKU  或  HKEY_USERS
  • HKCC  或  HKEY_CURRENT_CONFIG
  • HKDD  或  HKEY_DYN_DATA
  • HKPD  或  HKEY_PERFORMANCE_DATA
  • SHCTX  或  SHELL_CONTEXT

如果  root_key  是  SHCTX  或  SHELL_CONTEXT,它会被替换成  HKLM  如果  SetShellVarContext  设置为  所有  与  HKCU 如果  SetShellVarContext  设置为  当前

如果无法将字符串写入注册表,则会设置错误标志。WriteRegStr的字符串类型为REG_SZ,WriteRegExpandStr为REG_EXPAND_STR。如果注册表项不存在,则将创建它

WriteRegExpandStr HKLM "Software\My Company\My Software" "Expand String Value" "%WINDIR%\ notepad.exe"

3、ReadRegDWORD

作用:从注册表中读取32位DWORD到用户变量$ x。root_key的有效值列在WriteRegStr下。

如果DWORD不存在,将设置错误标志并将$ x设置为空字符串(“”为0)。如果该值存在但不是DWORD,则将其作为字符串读取,并将设置错误标志。

ReadRegDWORD $0 HKLM Software \ NSIS VersionBuild

4、DeleteRegKey

作用:删除注册表项。

如果指定了/ ifempty,则只有在没有子项的情况下才会删除注册表项(否则,将删除整个注册表树)。root_key的有效值列在WriteRegStr下  。如果无法从注册表中删除密钥(或者如果它不存在,则设置错误标志)

[/ ifempty] root_key子项
DeleteRegKey HKLM "Software\My Company\My Software"
DeleteRegKey /ifempty HKLM "Software\A key that might have subkeys"

5、DeleteRegValue

作用:删除注册表值

root_key的有效值列在WriteRegStr下。如果无法从注册表中删除该值(或者如果它不存在,则设置错误标志)。

DeleteRegValue HKLM "Software\My Company\My Software" "some value"

6、EnumRegKey

作用:user_var(输出)root_key子键索引

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

 
  1. StrCpy $0 0

  2. loop:

  3. EnumRegKey $1 HKLM Software $0

  4. StrCmp $1 "" done

  5. IntOp $0 $0 + 1

  6. MessageBox MB_YESNO|MB_ICONQUESTION "$1$\n$\nMore?" IDYES loop

  7. done:

7、EnumRegValue

作用:user_var(输出)root_key子键索引

使用root_key \ Subkey中'index'th注册表值的名称设置用户变量$ x。root_key的有效值列在WriteRegStr下。返回一个空字符串,如果没有更多值或者有错误,则设置错误标志。

 
  1. StrCpy $0 0

  2. loop:

  3. ClearErrors

  4. EnumRegValue $1 HKLM Software\Microsoft\Windows\CurrentVersion $0

  5. IfErrors done

  6. IntOp $0 $0 + 1

  7. ReadRegStr $2 HKLM Software\Microsoft\Windows\CurrentVersion $1

  8. MessageBox MB_YESNO|MB_ICONQUESTION "$1 = $2$\n$\nMore?" IDYES loop

  9. done:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值