ホーム > カテゴリ > Visual Basic >

レジストリのキーを列挙する

レジストリのキーを列挙するサンプルです。

サンプルの実行画面

ソースコード

[FileOperation.frm]

'RegEnumKeyEx=>レジストリのサブキーを列挙する

'<引数>
'hKey:              レジストリのハンドル
'dwIndex:           インデックス
'lpName:            サブキー名が入る
'lpcbName:          同、文字数
'lpReserved:        常に0
'lpClass:           常に0
'lpcbClass:         常に0
'lpftLastWriteTime: FILETIME構造体

'@戻り値@
'正常終了のとき ERROR_SUCCESS

Private Declare Function RegEnumKeyEx Lib "ADVAPI32" Alias "RegEnumKeyExA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpName As String, lpcbName As Long, lpReserved As Long, ByVal lpClass As String, lpcbClass As Long, lpftLastWriteTime As FILETIME) As Long


'RegCloseKey=>レジストリのハンドルを閉じる

'<引数>
'hKey:レジストリのハンドル

'@戻り値@
' なし

Private Declare Function RegCloseKey Lib "ADVAPI32" (ByVal hKey&) As Long


'RegOpenKeyEx=>レジストリのキーを開く
'<引数>
'hKey:        Rootキー(定数HKEY××参照)
'lpSubKey:     Subキー
'ulOptions:    常に0
'samDesired:   常に1
'phkResult:    開いたキーのハンドルを受取る変数

'@戻り値@
' 正常終了のとき ERROR_SUCCESS
 
Private Declare Function RegOpenKeyEx Lib "ADVAPI32" Alias "RegOpenKeyExA" (ByVal hKey&, ByVal lpSubKey$, ByVal ulOptions&, ByVal samDesired&, phkResult&) As Long


Private Type FILETIME
dwLowDateTime As Long    '下位32ビット
dwHighDateTime As Long   '上位32ビット
End Type

'ルートキー
Const HKEY_CLASSES_ROOT = &H80000000
Const HKEY_CURRENT_USER = &H80000001
Const HKEY_CURRENT_CONFIG = &H80000005
Const HKEY_DYN_DATA = &H80000006
Const HKEY_LOCAL_MACHINE = &H80000002
Const HKEY_USERS = &H80000003

Const ERROR_SUCCESS = 0&


Private Sub Command1_Click()

Dim Moji As String
Dim Nagasa As Long
Dim File As FILETIME
Dim i As Long
Dim Ret As Long

 List1.Clear

'バッファを確保する
  Moji = String(250, Chr(0))
  Nagasa = Len(Moji)

'キーをオープンしてハンドルを得る
  Ret = RegOpenKeyEx(HKEY_CURRENT_USER, Text2.Text, 0, 1, Hensu)

Do

'サブキーを取得
  Ret = RegEnumKeyEx(Hensu, i, Moji, Nagasa, 0, 0, 0, File)
  
'エラーだったらループを抜ける
  If Ret <> ERROR_SUCCESS Then Exit Do

'リストに追加していく
  List1.AddItem Moji

'初期化する
  Moji = String(250, Chr(0))
  Nagasa = Len(Moji)
  
  i = i + 1
  
Loop

'ハンドルを解放
  Call RegCloseKey(Hensu)

End Sub

ソースコード一式のダウンロード

vbapi_enumkey.zip 5.94 KB (6,086 バイト)

このサンプルの動作環境について

このサンプルは 「Windows98」及び「Microsoft Visual Basic 5.0 Professional Edition」で確認しております。環境が異なる場合は正常に動作しない場合もございますのでご了承下さい。





関連記事



公開日:2015年03月04日
記事NO:00378


この記事を書いた人

💻 ITスキル・経験
サーバー構築からWebアプリケーション開発。IoTをはじめとする電子工作、ロボット、人工知能やスマホ/OSアプリまで分野問わず経験。

画像処理/音声処理/アニメーション、3Dゲーム、会計ソフト、PDF作成/編集、逆アセンブラ、EXE/DLLファイルの書き換えなどのアプリを公開。詳しくは自己紹介へ
プチモンテ代表、アーティスト名:プチモンテ
🎵 音楽制作
BGMは楽器(音源)さえあれば、何でも制作可能。歌モノは主にロック、バラード、ポップスを制作。歌詞は叙情詩、叙情的な楽曲が多い。楽曲制作は2023年12月中旬 ~

オリジナル曲を始めました✨

YouTubeで各楽曲を公開しています🌈
https://www.youtube.com/@petitmonte

【男性ボーカル】DA・KA・RA | 新たな明日が風と共に訪れる

【男性、女性ボーカル】時空を超越する先に | 時空と風の交響曲

【女性、男性ボーカル】絆 | 穏やかな心に奏でる旋律