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