[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2007/04/29(Sun) 19:11
投稿者名:TN
Eメール:
URL :
タイトル:
RegOpenKeyExのエラー
いつもお世話になっております。

http://homepage1.nifty.com/MADIA/vb/API/RegOpenKeyEx.htm
などの例を参考に、Windows XP、VB6(SP6)環境でRegOpenKeyEx関数を
使ってレジストリの値を取得しようとしています。

ところが、HKEY_LOCAL_MACHINE\SECURITYという実在するキーを
Openしようとすると、戻り値はアクセス拒否の5になります。

Dim Ret As Long
Dim Hensu As Long
Ret = RegOpenKeyEx(&H80000002, "SECURITY", 0, 0, Hensu)

サブキーも変数も存在しないキーの場合にエラーになるのかと思い、
同様のキーHKEY_CURRENT_USER\Networkで試すと、こちらの戻り値は
成功の0となりました。
Ret = RegOpenKeyEx(&H80000001, "Network", 0, 0, Hensu)

エラーになるHKEY_LOCAL_MACHINE\SECURITYの方は、レジストリエディタで
画面右の名前(既定)をダブルクリックすると、次のような赤バツのエラー
メッセージが表示されます。

値の編集エラー
を編集できません。値の内容を読み取り中に、エラーが発生しました。

エラーにならないHKEY_CURRENT_USER\Networkの方は、レジストリエディタの
画面上ではデータに(値の設定なし)と表示されていて、HKEY_LOCAL_MACHINEの
方と見た目は同じですが、ダブルクリックすれば文字列の編集ダイアログが
表示され、値を編集できます。

存在しないキーを指定した場合はエラーにしたいのですが、現状ではその場合と
存在するHKEY_LOCAL_MACHINE\SECURITYを指定した場合で同じ戻り値になるので、
両者を区別することができません。

何かよい方法はございませんでしょうか?

投稿時間:2007/04/30(Mon) 09:56
投稿者名:TN
Eメール:
URL :
タイトル:
Re: RegOpenKeyExのエラー(追記)
キーHKEY_LOCAL_MACHINE\SECURITYを右クリックしてアクセス許可をクリックすると、
セキュリティの設定がちょっと特殊でした。
(HKEY_CURRENT_USER\Networkの方はフルアクセス可能)

仕方ないかなという気がしてきました。お騒がせいたしました。