WshShell オブジェクト | |
---|---|
RegRead(レジストリパス) | レジストリパスに指定された値を読み取る |
RegDelete(レジストリパス) | レジストリパスに指定された所から全て削除する |
RegWrite(レジストリパス,値,レジストリタイプ) | レジストリパスに指定された所に値を設定する |
ルート名 | 短縮形による指定方法 |
---|---|
HKEY_CURRENT_USER | HKCU |
HKEY_LOCAL_MACHINE | HKLM |
HKEY_CLASSES_ROOT | HKCR |
<% Dim Obj Set Obj = Server.CreateObject("Wscript.Shell.1") %> |
サブキーの数を取得して、その回数をループさせる |
---|
Dim Obj Dim RegPath Dim Max Dim i Dim ret REM レジストリ・パスをセット RegPath = "HKLM\Software" REM オブジェクトを生成 Set Obj = WScript.CreateObject("SReg.GetList.1") REM レジストリ・パスをオブジェクトに伝達 Obj.SetKey(RegPath) REM きちんとセットされているなら If Not Obj.IsError() = 0 Then WScript.Quit End If REM サブキーの個数を取得 Max = Obj.GetKeyNum() REM 取得した回数分ループ For i=0 To Max-1 ret = Obj.GetSubKey() WScript.Echo "サブキー名 = " & ret Next REM オブジェクトを解放 Set Obj = Nothing |
IsError 値で判断してループを止める |
Dim Obj Dim RegPath Dim chk Dim ret REM レジストリ・パスをセット RegPath = "HKLM\Software" REM オブジェクトを生成 Set Obj = WScript.CreateObject("SReg.GetList.1") REM レジストリ・パスをオブジェクトに伝達 Obj.SetKey(RegPath) REM きちんとセットされているなら If Not Obj.IsError() = 0 Then WScript.Quit End If REM IsError 値で判断 chk = 0 While chk = 0 ret = Obj.GetSubKey() WScript.Echo "サブキー名 = " & ret ret = IsError() If ret = 8 Then chk = 1 ElseIf Not ret = 0 Then chk = 1 End If Wend REM オブジェクトを解放 Set Obj = Nothing |
CSV 形式で取得してしまう |
Dim Obj Dim RegPath Dim ret REM レジストリ・パスをセット RegPath = "HKLM\Software" REM オブジェクトを生成 Set Obj = WScript.CreateObject("SReg.GetList.1") REM レジストリ・パスをオブジェクトに伝達 Obj.SetKey(RegPath) REM きちんとセットされているなら If Not Obj.IsError() = 0 Then WScript.Quit End If REM CSV 形式で取得 REM エスケープ処理はしていないので、 REM キー名で ",(カンマ)" があるとヤバイ ret = Obj.GetAllSubKey() WScript.Echo "サブキー一覧 = " & ret REM オブジェクトを解放 Set Obj = Nothing |
内容 |
一覧を取得するレジストリ・パスをセットする。 CreateObject 後は、まずこのメソッドでレジストリパスをセットする。 この COM コンポーネントは、このパス(正確には、レジストリ・ハンドル)を記録する。 |
引数 |
一覧を取得したいレジストリパス |
戻り値 | なし |
IsError 値 | |
成功 | 0 |
失敗 | 負数 |
レジストリのルート・パスには、以下の省略が可能。
ver1.0.0.1 では、大文字小文字の判別をしているので、ルートキーは大文字のみ可。 ルートキー以外のレジストリ・パスは、大文字/小文字どちらでも可。 |
内容 |
サブキー名を一つ取得する。 内部的にカウンタ(GetValueName() のものとは別物)を保持しており、このメソッドを何度も発行する事で、全てのサブキー名を取得する事が可能。 内部的なカウンタは、SetKey() メソッドの発行によって初期化される。 |
引数 | なし |
戻り値 | サブキー名 |
IsError 値 | |
成功 |
0 : 成功しました。 -705 : 成功しました。サブキーはこれが最後です。 |
失敗 | 負数 |
内容 |
値の名前を一つ取得する。 内部的にカウンタ(GetSubKey() のものとは別物)を保持しており、このメソッドを何度も発行する事で、全てのサブキー名を取得する事が可能。 内部的なカウンタは、SetKey() メソッドの発行によって初期化される。 |
引数 | なし |
戻り値 | 値の名前 |
IsError 値 | |
成功 |
0 : 成功しました。 -705 : 成功しました。値はこれが最後です。 |
失敗 | 負数 |
内容 | 直前の GetValueName() によって取得した値のレジストリタイプを取得する。 |
引数 | なし |
戻り値 |
直前の GetValueName() によって取得した値のレジストリタイプ 戻される値は文字列で
|
IsError 値 | |
なし。 この直後に、IsError() メソッドを発行した場合、このメソッドの直前のメソッドの IsError 値が返る。 つまり、IsError() メソッドで取得する変数をいじっていないという事です。 |
内容 |
CSV 形式でサブキー名の一覧を取得する。 ただし、",(カンマ)" についてのエスケープ処理は施していないので、",(カンマ)" を名前に含んでいる可能性がある場合、注意を要する。 |
引数 | なし |
戻り値 | CSV 形式のサブキー名の一覧 |
IsError 値 | |
成功 | 0 : 成功しました。 |
失敗 | 負数 |
内容 |
CSV 形式で値の名前の一覧を取得する。 ただし、",(カンマ)" についてのエスケープ処理は施していないので、",(カンマ)" を名前に含んでいる可能性がある場合、注意を要する。 |
引数 | なし |
戻り値 | CSV 形式の値の名前の一覧 |
IsError 値 | |
成功 | 0 : 成功しました。 |
失敗 | 負数 |
内容 | 指定されたレジストリパス直下のサブキーの個数を返す。 |
引数 | なし |
戻り値 | 指定されたレジストリパス直下のサブキーの個数。 |
IsError 値 | |
成功 | 0 : 成功しました。 |
失敗 | 負数 |
内容 | 指定されたレジストリパス直下の値の個数を返す。 |
引数 | なし |
戻り値 | 指定されたレジストリパス直下の値の個数。 |
IsError 値 | |
成功 | 0 : 成功しました。 |
失敗 | 負数 |
内容 | 指定されたレジストリパス直下に指定した値、またはサブキーを作成する。 |
引数 |
|
戻り値 | なし |
IsError 値 | |
成功 | 0 : 成功しました。 |
失敗 | 負数 |
内容 | 指定されたレジストリパス直下の指定した値を取得する。 |
引数 |
|
戻り値 |
指定したレジストリ値の値(バイト型配列) |
IsError 値 | |
成功 | 0 : 成功しました。 |
失敗 | 負数 |
内容 |
すでに SetKey() でオープン済みのレジストリパス直下の指定されたサブキー以下を削除します WSH の RegDelete() との違いは、指定するサブキー下にサブキーがあっても、再帰的な処理をするので、一発で削除されます。 |
引数 |
|
戻り値 |
なし |
IsError 値 | |
成功 | 0 : 成功しました。 |
失敗 | 負数 |
内容 | 直前のメソッドが成功したかどうか。 |
引数 | なし |
戻り値 |
直前のメソッドが成功したかどうか (() 内の数字が旧エラー番号) 0 以上 : 成功 負数 : エラー -1(10) : 予期しないエラー -701(3) : 引数のレジストリ・パスが正しくない。 -702(4) : レジストリへのアクセスに失敗しました。本 COM コンポーネントには、READ アクセス権が必要です。 -703(5) : 指定するキーがセットされていない。SetKey() メソッドでレジストリ・パスを設定してください。 -704(6) : 正常なバッファサイズの取得に失敗しました。(負の値を取得しました) -705(8) : 成功した。値はこれが最後です。 または、サブキー(または値)自体が存在しません。(0 個です) -706(7) : サブキー(または値)・アクセスカウンタの値が不正(負、または大きすぎる)です。 -707(9) : サブキー(または値)の個数として不正な値(負数)を取得しちゃいました。 -708(11): レジストリタイプの指定が間違っています。 1 : メモリが確保できなかった。 詳細は、sError.h を参照 |