代码不起作用 - SetDwordValue 在 vbs 中不起作用
Posted
技术标签:
【中文标题】代码不起作用 - SetDwordValue 在 vbs 中不起作用【英文标题】:code not working - SetDwordValue not working in vbs 【发布时间】:2019-07-30 23:52:37 【问题描述】:这是我的代码:
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 更改我的注册表项。
【问题讨论】:
【参考方案1】:最可能的原因是您根本没有权限写入该注册表项。 WMI 注册表方法在出现问题时不会引发错误,因此您需要检查方法的返回码,例如通过换行
oReg.SetDWordValue HKEY_LOCAL_MACHINE, strKeyPath, strValueName, 800
到
rc = oReg.SetDWordValue(HKEY_LOCAL_MACHINE, strKeyPath, strValueName, 800)
WScript.Echo rc
返回码 5 表示您有权限错误。
要解决这个问题,您可能只需要“以管理员身份”运行脚本。
【讨论】:
以上是关于代码不起作用 - SetDwordValue 在 vbs 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章
VS2010每当程序运行之后点击代码页就不起作用啥原因?如果不运行程序就好