You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用VBScript读取注册表中REG_QWORD类型的GPU显存数值

WScript.Shell提供的RegRead方法原生不支持REG_QWORD类型的键值读取,这是你运行失败的根本原因。

以下是适配你IE9+VBScript场景的可行方案,通过WMI的StdRegProv类读取QWORD值:

Const HKEY_LOCAL_MACHINE = &H80000002
' 64位系统访问64位注册表的标识,32位系统可以删除该常量及后续引用
Const KEY_WOW64_64KEY = &H40

Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")

For Each oItem in colGPUs
    memory = oItem.AdapterRAM / 1048576
    If memory < 0 Then
        If InStr(oItem.Name, "NVIDIA") Then
            keyPath = "SYSTEM\ControlSet001\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}\000" & GPUID
            valueName = "HardwareInformation.qwMemorySize"
            
            Dim highPart, lowPart
            ' 读取QWORD拆分的高低32位DWORD值
            oReg.GetDWORDValue HKEY_LOCAL_MACHINE, keyPath, valueName & ".HighPart", highPart, , KEY_WOW64_64KEY
            oReg.GetDWORDValue HKEY_LOCAL_MACHINE, keyPath, valueName & ".LowPart", lowPart, , KEY_WOW64_64KEY
            
            ' 拼接为完整64位数值,转换为MB单位
            fullVRAM = (highPart * 2^32 + lowPart) / 1048576
            MsgBox CStr(fullVRAM) & " MB"
        End If
    End If
Next

注意事项

  • IE9运行该代码需要在安全设置中开启「对未标记为可安全执行脚本的ActiveX控件初始化并执行脚本」权限,否则会触发权限报错
  • 如果你的系统是32位,删除代码中所有和KEY_WOW64_64KEY相关的内容即可
  • 单位转换可根据需求调整除数,如需转换为GB可将1048576替换为1073741824

内容的提问来源于stack exchange,提问作者idkplshelpme

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 07:27:01