はじめまして。
レジストリに値名、値を設定したいのですが、
RegSetValueExの戻り値が5(アクセスできません?)となります。
レジストリのキーをオープンでは正常にいきます。
↓こちらのサンプルプログラムでも同じエラーになるのですが、
何が問題なのでしょうか。
http://madia.world.coocan.jp/vb/API/RegSetValueEx.htm
どなたかご存じの方教えて下さい。
WinNT4.0、VB6.0です。
それだけではわかりませんが、書き込み権限のないアカウントを使っていたりはしていませんか?
レジストリを書き込み可能な状態で開いていますか?
回答ありがとうございます。
こちらのサンプルの「レジストリのキーを作成する」ではできたので権限はあると思います。
↓
http://madia.world.coocan.jp/vb/API/RegCreateKeyEx.htm
レジストリを書き込み可能な状態で開くというのは、
以下のようなレジストリのキーのオープンではダメなのでしょうか。
長々書いてすいません。
Public Function fRegSetValue(hRegValue As String) As String
Dim ret As Long
Dim Rootkey As String
Dim Subkey As String
Dim nHandle As Long
Dim nLeng As Long
Dim sName As String
Dim 戻り値 As String
Rootkey = HKEY_CURRENT_USER
Subkey = "Software\Adobe\Acrobat PDFWriter"
sName = "PDFFileName"
'レジストリのキーをオープンしてハンドル確保
ret = RegOpenKeyEx(Rootkey, Subkey, 0, 1, nHandle)
If ret <> ERROR_SUCCESS Then
戻り値 = "レジストリのキーのオープンに失敗しました。"
GoTo endproc
End If
nLeng = Len(hRegValue)
'値を設定する
ret = RegSetValueEx(nHandle, sName, 0, REG_SZ, hRegValue, nLeng)
'エラーの確認
If ret = ERROR_SUCCESS Then
戻り値 = "正常に設定しました"
Else
戻り値 = "正常に設定できませんでした"
End If
endproc:
'ハンドルを閉じる
Call RegCloseKey(nHandle)
fRegSetValue = 戻り値
End Function
自己レスします。
>ジストリを書き込み可能な状態で開いていますか?
というのはこれでいいんですよね。
ret = RegOpenKeyEx(Rootkey, Subkey, 0, KEY_ALL_ACCESS, nHandle)
正常に書き込みできました。
ありがとうございました。