RegRead 函数 returns 一个错误的值

RegRead Function returns a wrong value

我有一个读取注册表值的脚本。它一直有效,但这次它给了我一个错误的结果

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

这是我使用的代码:

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

注册表中的值是 32 位无符号整数,但 VBScript 将其解释为 32 位有符号整数(参见 here).

要么显示十六进制值:

WScript.Echo Hex(St)

或调整误读值:

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