投稿時間: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を指定した場合で同じ戻り値になるので、 両者を区別することができません。
何かよい方法はございませんでしょうか?
|