首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查注册表值

检查注册表值
EN

Stack Overflow用户
提问于 2015-01-19 15:45:34
回答 1查看 1.4K关注 0票数 0

将以下行添加到验证脚本中,以检查注册表值是否已添加并获取消息

验证HKLM\SOFTWARE\OLEforRetail\ServiceOPOS\MSR\REDIRON_MSR注册表值时取心的错误

以下是代码:

代码语言:javascript
复制
Dim strRegvalue

strRegvalue = g_objShell.RegRead("HKLM\SOFTWARE\OLEforRetail\ServiceOPOS\MSR\REDIRON_MSR\")

If LCase(strRegvalue) = "True" Then
  Call WriteToLog("HKLM\SOFTWARE\OLEforRetail\ServiceOPOS\MSR\REDIRON_MSR value verified successfully")
Else
  RegSuccessCode = 111
  Call WriteToLog("Error occurred while verifying the Registry Value for HKLM\SOFTWARE\OLEforRetail\ServiceOPOS\MSR\REDIRON_MSR")
End If

你能告诉我我哪里出了问题吗。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-19 18:39:28

如果要使用RegRead检查注册表项的存在,可以通过读取键的默认值来实现。但是,必须启用错误处理,因为如果不能读取值(即键不存在),RegRead将引发错误:

代码语言:javascript
复制
key = "HKLM\SOFTWARE\OLEforRetail\ServiceOPOS\MSR\REDIRON_MSR\"

On Error Resume Next
g_objShell.RegRead key
If Err Then
  WScript.Echo key & " does not exist."
Else
  WScript.Echo key & " exists."
End If
On Error Goto 0

更好的方法是使用WMI注册表方法,例如EnumKey

代码语言:javascript
复制
Set reg = GetObject("winmgmts://./root/default:StdRegProv")

Const HKLM = &h80000002
key = "SOFTWARE\OLEforRetail\ServiceOPOS\MSR\REDIRON_MSR\"

retval = reg.EnumKey(HKLM, key, Null)
If retval = 0 Then
  WScript.Echo key & " exists."
Else
  WScript.Echo key & " does not exist."
End If
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28028377

复制
相关文章

相似问题

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