代码不起作用 - 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 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

为啥代码覆盖率在 ReSharper 中不起作用?

VS2010每当程序运行之后点击代码页就不起作用啥原因?如果不运行程序就好

Blogger 寻呼机代码不起作用

我的第一个代码不起作用,第二个代码不起作用,但它们几乎相同。如何找到黑色缩略图的原因?

为啥我的频道消息发送代码不起作用?

为啥这个方向代码不起作用?