首页 > 解决方案 > RegRead 函数返回错误值

问题描述

我有一个脚本来读取注册表值。它一直工作到现在,但这次它给了我一个错误的结果

这是实际的注册表值以及以下代码返回的值:

注册表值

这是我正在使用的代码:

FileExt = "HKEY_CLASSES_ROOT\CLSID\{F02C1A0D-BE21-4350-88B0- 
7367FC96EF3C}\ShellFolder\Attributes"
Set Shell = WScript.CreateObject("WScript.Shell")
St = Shell.RegRead(FileExt)
wscript.echo St

标签: vbscript

解决方案


注册表中的值是一个 32 位无符号整数,但 VBScript 将其解释为一个 32 位有符号整数(参见示例此处)。

要么显示十六进制值:

WScript.Echo Hex(St)

或调整误解的值:

If St < 0 Then St = St + 2^32
WScript.Echo St

推荐阅读