- ベストアンサー
WSHでレジストリキーの確認(Win98SE)
対象となるOSは、Windows98SEです. WSHでレジストリキーの内容を取得したいのですが、WMIを使わずに確認する方法はないでしょうか? よろしくお願いします.
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
WMIを使わなければ列挙(EnumKey,EnumValues)はできないと思います。キーまたは名前指定でよければエラーハンドリングできます。 VBScriptならOn Error Resume Nextを使います。 ----- 'Name = "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\ProgramFilesDir" Name = "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\ProgramFilesDirErr" Set WshShell = WScript.CreateObject("WScript.Shell") Val = "" On Error Resume Next Val = WshShell.RegRead(Name) On Error GoTo 0 if Val="" then WScript.Echo Name & "の読み取りエラーです。" else WScript.Echo Name & "の値は" & Val & "です。" end if ----- JScriptならスマートなtry catchを使えます。バージョン5以降。最新は5.6です。 ----- //Name = "HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\ProgramFilesDir"; Name = "HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\ProgramFilesDirErr"; WshShell = WScript.CreateObject("WScript.Shell"); try{ Val = WshShell.RegRead(Name); } catch(e){ Val = ""; } if (Val=="") WScript.Echo (Name + "の読み取りエラーです。"); else WScript.Echo (Name + "の値は" + Val + "です。"); -----
その他の回答 (1)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
Dim WshShell, regValue Set WshShell = WScript.CreateObject("WScript.Shell") regValue = WshShell.RegRead ("レジストリキーまたは名前")
補足
回答、ありがとうございます. 言葉足らずだったのですが、 WshShell.RegRead ("レジストリキーまたは名前") は試しております. ですが、98SEの場合、キーが存在しないとエラーで落ちてしまいます.(警告のPOPUP) エラーで落ちた場合に、エラーハンドリングして、判断するという手段は、今回の仕様だと使えません. 何か他に方法はないでしょうか? またはエラーで落ちないようにすることは可能なのでしょうか?