レジストリの値を設定          <TOP>


SHSetValue レジストリ値を設定
 

HKEY_CURRENT_USER\Tokovalue\FBTipsを作成し、文字列型、数値型、バイナリ型の値を書き込んでいます。

レジストリエディタで確認をしています。(上の図と同期はとっていません!)

'================================================================
'= レジストリの値を設定
'=    (SHSetValue.bas)
'================================================================
#include "Windows.bi"

' レジストリ値を設定
Declare Function Api_SHSetValue& Lib "Shlwapi" Alias "SHSetValueA" (ByVal hkey&, ByVal pszSubKey$, ByVal pszValue$, ByVal dwType&, pvData As Any, ByVal cbData&)

#define HKEY_CURRENT_USER -2147483647   '現在Windowsにログインしているユーザーの情報
#define REG_BINARY 3                    'バイナリデータ
#define REG_DWORD 4                     '32ビットの数値
#define REG_SZ 1                        'ヌル終端文字列

Var Shared Text1 As Object
Var Shared Button1 As Object
Var Shared Button2 As Object
Var Shared Button3 As Object

Text1.Attach GetDlgItem("Text1") : Text1.SetFontSize 14
Button1.Attach GetDlgItem("Button1") : Button1.SetFontSize 14
Button2.Attach GetDlgItem("Button2") : Button2.SetFontSize 14
Button3.Attach GetDlgItem("Button3") : Button3.SetFontSize 14

Var Shared SubKey As String

'================================================================
'=
'================================================================
Declare Sub MainForm_Start edecl ()
Sub MainForm_Start()
    SubKey = "Software\Tokovalue\FBTips"
    Text1.SetWindowText SubKey
End Sub

'================================================================
'= 文字列型を設定
'================================================================
Declare Sub Button1_on edecl ()
Sub Button1_on()
    Var sData As String
    Var Ret As Long

    sData = "Test Value"
    Rat = Api_SHSetValue(HKEY_CURRENT_USER, SubKey, "Test", REG_SZ, sData, Len(sData))
End Sub

'================================================================
'= 数値型を設定
'================================================================
Declare Sub Button2_on edecl ()
Sub Button2_on()
    Var lData As Long
    Var Ret As Long

    lData = 10
    Ret = Api_SHSetValue(HKEY_CURRENT_USER, SubKey, "Test Value", REG_DWORD, lData, Len(lData))
End Sub

'================================================================
'= バイナリ型を設定
'================================================================
Declare Sub Button3_on edecl ()
Sub Button3_on()
    Var bData(10) As Byte
    Var Ret As Long

    bData(0) = 10
    bData(1) = 20
    Ret = Api_SHSetValue(HKEY_CURRENT_USER, SubKey, "Test Binary", REG_BINARY, ByVal VarAdr(bData(0)), bData(1))
End Sub

'================================================================
'=
'================================================================
While 1
    WaitEvent
Wend
Stop
End