【发布时间】:2021-08-17 17:54:17
【问题描述】:
我认为这个问题不言自明。我无法从注册表中获取一些值,我希望这里的人可以帮助我。
我被 IE9 卡住了,因为它是唯一一个有一些合理的 CSS 功能,并且确实支持GetObject()。
所以现在,假设我正在尝试在"HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}\0000\HardwareInformation.qwMemorySize" 检索 GPU 的内存大小(据我所知,这应该是通用路径和密钥)。
这就是问题的开始。要么我没有得到任何输出,要么出现一些错误,说明某些内容不同,或者是什么(我的系统以不同的语言运行,所以我无法提供正确的翻译)。
经过一番研究,我似乎找到了问题 - 我试图阅读的值是REG_QWORD,不幸的是我只能找到很少的内容,而且大多数解决方案都不起作用对我来说。
所以现在,我使用这段代码,不出所料,它也不起作用(我从一开始就有的代码):
for Each oItem in colGPUs
memory = oItem.AdapterRAM / 1048576
If memory < 0 Then
If InStr(oItem.Name, "NVIDIA") Then
Set wssx = CreateObject("WScript.Shell")
msgbox CStr(wssx.RegRead("HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}\000" + GPUID + "\HardwareInformation.qwMemorySize"))
End If
End If
【问题讨论】:
-
我们可以提供帮助,但您需要告诉我们到目前为止您已经尝试了什么、您拥有什么代码以及您遇到的问题。您可以edit您的问题以添加更多详细信息。
-
@Mokubai 完成。我什至没有想到您实际上需要代码和更多背景故事等这一事实
-
WScript.Shell对象根本不支持REG_QWORD,用于读取或写入。您可以尝试改用 WMI,特别是StdRegProv类及其GetQWORDValue()方法。见this example -
IE9/CSS 参考暗示了一个 HTA。也许这会有所帮助:stackoverflow.com/questions/68807325/…