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
}