Windows Scripting Host によって実行される JavaScript を作成しています。特定の 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: レジストリ キー "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDlls\C:\Program Files\Common Files\ACME Corp\AcmeUtil.dll" の無効なルート