レジストリに値名、値を設定する
レジストリに値名、値を設定するサンプルです。
サンプルの実行画面
ソースコード
[SetValue.frm]
'RegOpenKeyEx=>レジストリのキーを開く
'<引数>
'hKey: Rootキー(定数HKEY××参照)
'lpSubKey: Subキー
'ulOptions: 常に0
'samDesired: 常に1
'phkResult: 開いたキーのハンドルを受取る変数
'@戻り値@
'正常終了のとき ERROR_SUCCESS
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
'RegCloseKey=>レジストリのハンドルを閉じる
'<引数>
'hKey: レジストリのハンドル
'@戻り値@
'なし
Public Declare Function RegCloseKey Lib "ADVAPI32" (ByVal hKey As Long) As Long
'RegSetValueEx=>レジストリの値名、値を設定する
'<引数>
'hKey:RegOpenKeyExで取得したハンドル
'lpValueName:値名
'Reserved:常に0
'dwType:定数(REG_××参照)
'lpData:値を示す文字列
'cbData:値を示す文字列の文字数
'
'<戻り値>
'正常終了のとき ERROR_SUCCESS
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は使わないと思いますが・・・)
'ルートキー
Const HKEY_CLASSES_ROOT = &H80000000
Const HKEY_CURRENT_CONFIG = &H80000005
Const HKEY_CURRENT_USER = &H80000001
Const HKEY_DYN_DATA = &H80000006
Const HKEY_LOCAL_MACHINE = &H80000002
Const HKEY_PERFORMANCE_DATA = &H80000004
Const HKEY_USERS = &H80000003
Const ERROR_SUCCESS = 0
'値のタイプ
Const REG_SZ = 1
'Const REG_DWORD = 4
Private Sub Command1_Click()
Dim Ret As Long
Dim Rootkey As String
Dim Subkey As String
Dim nHandle As Long
Dim nLeng As Long
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
ソースコード一式のダウンロード
vbapi_setvalue.zip 5.94 KB (6,086 バイト)
このサンプルの動作環境について
このサンプルは 「Windows98」及び「Microsoft Visual Basic 5.0 Professional Edition」で確認しております。環境が異なる場合は正常に動作しない場合もございますのでご了承下さい。
スポンサーリンク
関連記事
| 前の記事: | レジストリの値を取得する |
| 次の記事: | 画面の解像度を取得する |
公開日:2015年03月04日 最終更新日:2015年03月05日
記事NO:00380
プチモンテ ※この記事を書いた人
![]() | |
![]() | 💻 ITスキル・経験 サーバー構築からWebアプリケーション開発。IoTをはじめとする電子工作、ロボット、人工知能やスマホ/OSアプリまで分野問わず経験。 画像処理/音声処理/アニメーション、3Dゲーム、会計ソフト、PDF作成/編集、逆アセンブラ、EXE/DLLファイルの書き換えなどのアプリを公開。詳しくは自己紹介へ |
| 🎵 音楽制作 BGMは楽器(音源)さえあれば、何でも制作可能。歌モノは主にロック、バラード、ポップスを制作。歌詞は抒情詩、抒情的な楽曲が多い。楽曲制作は🔰2023年12月中旬 ~ | |









