54.レジストリの値を取得する




< 使用用途 >

レジストリの値を取得する

今回のサンプルソースをダウンロードする方は下記の「ダウンロード」を!
=>ダウンロード・・・ 下に書いてあるサンプルソースと同じです


< 説明 >
API関数のRegQueryValueExStrを使用します。
RegQueryValueExStr=>レジストリの値を取得する
  <引数>
     hKey&:レジストリのハンドル
     lpValueName$:取得したい名前を入れる
     lpReserved&:常に0
     lpType&:常に0
     lpData$:取得した値が入る
     lpcbData&:同、文字数
  @戻り値@  
      正常終了のとき ERROR_SUCCESS
*レジストリのハンドルはRegOpenKeyExを参照


< SAMPLE >
'ここでは「HKEY_CURRENT_USER¥SoftWare\VB and VBA Program Settings\API Viewer\Position」の"Height"の値を取得します。

'標準モジュール
'レジストリのハンドルを解放する
Public Declare Function RegCloseKey Lib "ADVAPI32" (ByVal hKey&) As Long
'レジストリのキーを開ける(ハンドルの確保)
Public Declare Function RegOpenKeyEx Lib "ADVAPI32" Alias "RegOpenKeyExA" (ByVal hKey&, ByVal lpSubKey$, ByVal ulOptions&, ByVal samDesired&, phkResult&) As Long
'レジストリの値を取得する
Public Declare Function RegQueryValueExstr Lib "ADVAPI32" Alias "RegQueryValueExA" (ByVal hKey&, ByVal lpValueName$, ByVal lpReserved&, ByVal lpType&, ByVal lpData$, lpcbData&) As Long

Public Const HKEY_CLASSES_ROOT = &H80000000
Public Const HKEY_CURRENT_USER = &H80000001
Public Const HKEY_CURRENT_CONFIG = &H80000005
Public Const HKEY_DYN_DATA = &H80000006
Public Const HKEY_LOCAL_MACHINE = &H80000002
Public Const HKEY_USERS = &H80000003
Public Const ERROR_SUCCESS = 0&

'ここからはフォームの処理
Private Sub Command1_Click()

  Dim Valuedate As String
  Dim Length As Long
  Dim Name As String

  RootKey = HKEY_CURRENT_USER
  SubKey = "SoftWare\VB and VBA Program Settings\API Viewer\Position"

  'キーをオープンしてハンドルを得る
  Ret = RegOpenKeyEx(RootKey, SubKey, 0, 1, Hensu)

  'Nameに値を取得したい名前を入れる
  Name = "Height"

  'バッファを確保する
  Valuedate = String(250, Chr(0))
  Length = Len(Valuedate) '長さ

  'HensuはRegOpenKeyExで開いたキーのハンドル
  Ret = RegQueryValueExstr(Hensu, Name, 0, 0, Valuedate, Length)

  'テキストに出力
  Text1.Text = Valuedate

  'ハンドルを閉じる
  Call RegCloseKey(Hensu)

End Sub





API 技術関連のページへ戻る

ホーム PV ランキング