82.レジストリの値名、値を設定する
< 使用用途 >
レジストリの値名、値を設定する
今回のサンプルソースをダウンロードする方は下記の「ダウンロード」を!
=> ダウンロード ・・・下記のサンプルと同じです。
< 説明 >
API関数の RegSetValueEx を使用します
RegSetValueEx=>レジストリの値名、値を設定する
<引数>
'hKey:RegOpenKeyExで取得したハンドル
'lpValueName:値名
'Reserved:常に0
'dwType:定数(REG_××参照)
'lpData:値を示す文字列
'cbData:値を示す文字列の文字数
@戻り値@
正常終了のとき ERROR_SUCCESS
< SAMPLE >
’ここではHKEY_CURRENT_USER\SoftWareの所に値名を「Test」、値を「サンプルです」を書きこむ処理です
'標準モジュール
Public Declare Function RegOpenKeyEx Lib "advapi32.dll"
Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As
String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As
Long) As Long
Public Declare Function RegCloseKey Lib "ADVAPI32" (ByVal hKey
As Long) As Long
Public Declare Function RegSetValueEx Lib "advapi32.dll" Alias
"RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String,
ByVal Reserved As Long, ByVal dwType As Long, ByVal lpData As Any, ByVal
cbData As Long) As Long
'<注>RegSetValueExの引数「lpData」の前にByValをつけています。
'ByValを書くだけなのでこの方法をとりました。
'--->REG_DWORDを使う時はByValを消さないと使用できません(REG_DWORDは使わないと思いますが・・・)
Public Const HKEY_CLASSES_ROOT = &H80000000
Public Const HKEY_CURRENT_CONFIG = &H80000005
Public Const HKEY_CURRENT_USER = &H80000001
Public Const HKEY_DYN_DATA = &H80000006
Public Const HKEY_LOCAL_MACHINE = &H80000002
Public Const HKEY_PERFORMANCE_DATA = &H80000004
Public Const HKEY_USERS = &H80000003
Public Const ERROR_SUCCESS = 0
Public Const REG_DWORD = 4
Public Const REG_SZ = 1
'ここからはフォーム内の処理です
Private Sub Command1_Click()
Dim Ret As Long
Dim Rootkey As String
Dim Subkey As String
Dim nHandle As Long
Dim nLeng As Long
Text1.Text="Test"
Text2.Text="これはサンプルです"
Rootkey = HKEY_CURRENT_USER
Subkey = "Software"
nLeng = Len(Text2.Text)
'ハンドル確保
Ret = RegOpenKeyEx(Rootkey, Subkey, 0, 1, nHandle)
'値を設定する
Ret = RegSetValueEx(nHandle, Text1.Text, 0, REG_SZ, Text2.Text, nLeng)
'ハンドルを閉じる
Call RegCloseKey(nHandle)
'エラーの確認
If Ret = ERROR_SUCCESS Then
MsgBox "正常に設定しました"
Else
MsgBox "正常に設定できませんでした"
End If
End Sub