Loop (レジストリ)
提供: AutoHotkey Wiki
実行制御 | GUI表示 | 演算・変数 | メモリ・DLL操作 | 文字列操作 |
キーボード | マウス | シェル | ウィンドウ | ウィンドウグループ
ステータスバー | コントロール | サウンド | ファイル | INIファイル |
レジストリ | 環境変数 | AutoHotkey | その他 | 設定関係 | オブジェクト
Loop (レジストリ)[編集]
指定キー以下のレジストリキーそれぞれに対して繰り返し処理を行う。
Loop, RootKey [, Key, IncludeSubkeys?, Recurse?]
Parameters[編集]
引数名 | 説明 | |
---|---|---|
RootKey | HKEY_LOCAL_MACHINE HKEY_USERS HKEY_CURRENT_USER HKEY_CLASSES_ROOT HKEY_CURRENT_CONFIG のどれか。 HKLM のような短縮名も可能。リモートのレジストリにアクセスしたい場合、 \\workstation01:HKEY_LOCAL_MACHINE のようにコンピュータ名と : をつける。
| |
Key | 親キー名。 例えば Software\SomeApplication 。省略時はRootKey以下のキーが処理される。 | |
IncludeSubkeys? | デフォルトは 0 。
| |
0 | 値のみを処理。 | |
1 | 値とサブキー。 | |
2 | サブキーのみ。 | |
Recurse? | デフォルトは 0 。
| |
0 | サブキー内のキーは対象にならない。 | |
1 | サブキー内のキーも対象になる。 |
Remarks[編集]
対象となっているキーの情報は、下記の変数として参照できる。
A_LoopRegName | 対象となっている値やサブキーの名前。 RegEdit.exeで (規定) となっている値の場合、空になる。
|
A_LoopRegType | サブキーの場合 KEY となる。値の場合、 REG_SZ , REG_EXPAND_SZ , REG_MULTI_SZ , REG_DWORD , REG_QWORD , REG_BINARY , REG_LINK , REG_RESOURCE_LIST , REG_FULL_RESOURCE_DESCRIPTOR , REG_RESOURCE_REQUIREMENTS_LIST , REG_DWORD_BIG_ENDIAN のどれかになる。これらのどれでも無いタイプのキーだった場合、空になる。 |
A_LoopRegKey | 対象となっているルートキーの名前。( HKEY_LOCAL_MACHINE , HKEY_USERS , HKEY_CURRENT_USER , HKEY_CLASSES_ROOT , HKEY_CURRENT_CONFIG ) リモートのレジストリでも、コンピュータ名は含まない。
|
A_LoopRegSubKey | 対象となっている項目のサブキーのパス。 |
A_LoopRegTimeModified | キーの最終更新日時。YYYYMMDDHH24MISS形式。 NT系で、対象がサブキーの場合以外は空。 |
下記のコマンドをレジストリループ内で実行する場合、対象キーを省略できる。
RegRead, OutputVar | 現在の項目の値を変数に読み出す。 項目がサブキーだった場合、ErrorLevelが 1 になり、OutputVarは空になる。
|
RegWrite [, Value] | 現在の項目に値を書き込む。 Valueが省略された場合、値は 0 もしくは空になる。項目がサブキーだった場合、ErrorLevelが 1 になる。
|
RegDelete | 項目を削除する。 項目がサブキーだった場合、以下の全ての項目が削除される。 |
その他の仕様は、通常のLoopと同様。
リモートマシンのレジストリの扱いに関する説明は割愛する。
Related[編集]
Loop, Break, Continue, Blocks, RegRead, RegWrite, RegDelete
Example(s)[編集]
Loop, HKEY_CURRENT_USER, Software\Microsoft\Windows, 1, 1 { If A_LoopRegType = key value = Else { RegRead, value If ErrorLevel <> 0 value = *error* } MsgBox, 4, , %A_LoopRegName% = %value% (%A_LoopRegType%)`n`nContinue? IfMsgBox, NO, Break }