Я пишу некоторый javascript для выполнения Windows Scripting Host, и мне нужно иметь возможность считать общее количество файлов из реестра для определенных конкретных библиотек DLL. Раздел реестра и значения выглядят так:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDlls]
"C:\\Program Files\\Common Files\\ACME Corp\\AcmeUtil.dll"=dword:00000002
"C:\\Program Files\\Common Files\\ACME Corp\\SuperEdit.ocx"=dword:00000001
Я пытаюсь использовать метод WshShell.RegRead для этого, но, похоже, он не работает. Я думаю, что проблема в том, что этот метод принимает только один параметр, который представляет собой конкатенированный путь ключа и имя значения для значения, которое нужно получить. Поскольку имя значения в этом случае само является путем, метод считает, что он является частью ключа. Есть ли способ заставить этот метод распознать имя значения для того, что оно есть?
Вот код, который демонстрирует проблему:
var shell = WScript.CreateObject("WScript.Shell");
var keyPath = "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\SharedDlls\\";
var valName = "C:\\Program Files\\Common Files\\ACME Corp\\AcmeUtil.dll";
WScript.Echo("count = " + shell.RegRead(keyPath + valName));
Я вижу ошибку:
WshShell.RegRead: Invalid root in registry key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDlls\C:\Program Files\Common Files\ACME Corp\AcmeUtil.dll"