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





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

ホーム PV ランキング