初めましてレジストリのREG_DWORD型の読込は正しくできるのですが書込はregeditで見ると設定した値と異なりますので教えて下さい。
プロシジャーは引数で行っていますが引数を固定値でしても同一の症状となります。
Public Function SetRegLong(ByVal lngRootKey As Long, ByVal strSubkey As String, _
ByVal strValueName As String, ByVal SetValue As Long) As Integer
Dim lngRet As Long
Dim lnghSubKey As Long
lngRootKey = HKEY_CURRENT_USER
strSubkey = "Key"
strValueName = "Value"
SetValue = 1023&
lngRet = RegCreateKeyEx(lngRootKey, strSubkey, 0&, vbNullString, ByVal 0&, KEY_WRITE, ByVal 0&, lnghSubKey, ByVal 0&) 'キーを作成する
SetRegLong = DllOpenErr
If lngRet <> ERROR_SUCCESS Then Exit Function
lngRet = RegSetValueEx(lnghSubKey, strValueName, 0&, REG_DWORD, ByVal SetValue, Len(SetValue))
Call RegCloseKey(lnghSubKey)
SetRegLong = DllAccessErr
If lngRet <> ERROR_SUCCESS Then Exit Function
SetRegLong = DllNoneErr
End Function
書込データ(dec) → 実際の設定されたデータ(dec)
1023 4608
1 906251791
2 154534990
1111 -1275068416
9999 2105376
等です。
以上よろしく御願いします。
RegSetValueExのSetValueは、値が入ったバッファへのポインタなので、
REG_DWORDの場合、ByRef SetValue ではないでしょうか?
ポンさん 解決しました有り難うございます。
ツイート | ![]() |