MTe*_*eck 12 windows registry vbscript
我认为这很容易,但显然没有人这样做......我正在试图查看是否存在注册表项.我不在乎其中是否有任何值,如(默认).
这就是我一直在尝试的.
Set objRegistry = GetObject("winmgmts:\\.\root\default:StdRegProv")
objRegistry.GetStringValue &H80000003,".DEFAULT\Network","",regValue
If IsEmpty(regValue) Then
Wscript.Echo "The registry key does not exist."
Else
Wscript.Echo "The registry key exists."
End If
Run Code Online (Sandbox Code Playgroud)
我只想知道HKEY_USERES\.DEFAULT\.Network是否存在.我在搜索时发现的任何东西似乎都在讨论操纵它们,并且几乎认为密钥确实存在,因为如果它没有,它就会神奇地创建.
MTe*_*eck 10
我找到了解决方案.
dim bExists
ssig="Unable to open registry key"
set wshShell= Wscript.CreateObject("WScript.Shell")
strKey = "HKEY_USERS\.Default\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Digest\"
on error resume next
present = WshShell.RegRead(strKey)
if err.number<>0 then
if right(strKey,1)="\" then 'strKey is a registry key
if instr(1,err.description,ssig,1)<>0 then
bExists=true
else
bExists=false
end if
else 'strKey is a registry valuename
bExists=false
end if
err.clear
else
bExists=true
end if
on error goto 0
if bExists=vbFalse then
wscript.echo strKey & " does not exist."
else
wscript.echo strKey & " exists."
end if
Run Code Online (Sandbox Code Playgroud)
这两种方法中的第二种可以满足您的需求.我刚刚使用它(在这个帖子中找不到成功之后)并且它对我有用.
http://yorch.org/2011/10/two-ways-to-check-if-a-registry-key-exists-using-vbscript/
代码:
Const?HKCR?=?&H80000000?'HKEY_CLASSES_ROOT
Const?HKCU?=?&H80000001?'HKEY_CURRENT_USER
Const?HKLM?=?&H80000002?'HKEY_LOCAL_MACHINE
Const?HKUS?=?&H80000003?'HKEY_USERS
Const?HKCC?=?&H80000005?'HKEY_CURRENT_CONFIG
Function?KeyExists(Key,?KeyPath)
Dim?oReg: Set?oReg?=?GetObject("winmgmts:!root/default:StdRegProv")
If?oReg.EnumKey(Key,?KeyPath,?arrSubKeys)?=?0?Then
KeyExists?=?True
Else
KeyExists?=?False
End?If
End?Function
Run Code Online (Sandbox Code Playgroud)
避免RegRead和错误处理技巧的最简单方法.注册表的可选友好协议:
Const?HKEY_CLASSES_ROOT? =?&H80000000
Const?HKEY_CURRENT_USER? =?&H80000001
Const?HKEY_LOCAL_MACHINE ?=?&H80000002
Const?HKEY_USERS? =?&H80000003
Const?HKEY_CURRENT_CONFIG?=?&H80000005
Run Code Online (Sandbox Code Playgroud)
然后检查:
Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
If oReg.EnumKey(HKEY_LOCAL_MACHINE, "SYSTEM\Example\Key\", "", "") = 0 Then
MsgBox "Key Exists"
Else
MsgBox "Key Not Found"
End If
Run Code Online (Sandbox Code Playgroud)
以上重要说明:
| 归档时间: |
|
| 查看次数: |
103101 次 |
| 最近记录: |