这是我的代码:
Const HKEY_CLASSES_ROOT= &H80000000
Const HKEY_CURRENT_USER= &H80000001
Const HKEY_LOCAL_MACHINE= &H80000002
Const HKEY_USERS= &H80000003
Set StdOut = WScript.StdOut
Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
strKeyPath = "SYSTEM\CurrentControlSet\Hardware Profiles\UnitedVideo\CONTROL\VIDEO\{D218E173-A430-11E8-80D8-005056C00008}\0001"
strValueName = "venkat"
oReg.SetDWordValue HKEY_LOCAL_MACHINE, strKeyPath, strValueName, 800
oReg.GetDWordValue HKEY_LOCAL_MACHINE, strKeyPath, strValueName, dval
WScript.Echo "SYSTEM\CurrentControlSet\Control\" & " = " & dval
我正在Windows 10中运行。
脚本中的 SetDWordValue
无效。
GetDwordValue
工作正常,正在获取数据。
尝试了所有可能性。即使是来自MSDN的代码也不起作用。我想使用vbs更改我的注册表项。
答案 0 :(得分:0)
最可能的原因是您根本没有写该注册表项的权限。出现问题时,WMI注册表方法不会引发错误,因此您需要检查该方法的返回码,例如通过更改行
oReg.SetDWordValue HKEY_LOCAL_MACHINE, strKeyPath, strValueName, 800
到
rc = oReg.SetDWordValue(HKEY_LOCAL_MACHINE, strKeyPath, strValueName, 800)
WScript.Echo rc
返回码5表示您有权限错误。
要解决此问题,您可能只需要以“以管理员身份”运行脚本。