RegEnumKeyEx

返信する


答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: RegEnumKeyEx

by M.S. » 2007年5月26日(土) 15:37

7 さん、イグトランス (egtra) さんありがとうございました。

イグトランスさんのコードで動くようになりました。

>http://msdn.microsoft.com/library/ja/de ... mkeyex.asp
>このページの引数を参考にした方が良いと思います。

MSDN の方がよさそうなので、
次から未定義の宣言を書くときは MSDN を見ることにします。

by イグトランス » 2007年5月26日(土) 13:00

原因は第3引数pNameだと思います。

これはAB5のヘッダからAB4向けに修正したものです。

コード: 全て選択

Declare Function RegEnumKeyEx Lib "advapi32" Alias "RegEnumKeyExA" (
	hKey As HKEY,
	dwIndex As DWord,
	pName As *Byte,
	ByRef cName As DWord,
	pReserved As *DWord,
	pClass As *Byte,
	ByRef cClass As DWord,
	pftLastWriteTime As *FILETIME) As Long
宣言をこちらに書き換えて,RegEnumKeyEx(hKey, dwIndex1, szObject, dwBufSize, 0, 0, 0, 0)とするとアクセス違反を起こさず動くようになりました。

VBの宣言を持ってくるのは楽ですが,AB用に書き換えるときにはよく注意してください。

by 7 » 2007年5月26日(土) 12:46

試してないので解決するか分かりませんが、RegEnumKeyEx()関数の第六引数の型を変更してみてください。
String型からBytePtrやLPSTRに。

http://msdn.microsoft.com/library/ja/de ... mkeyex.asp
このページの引数を参考にした方が良いと思います。

RegEnumKeyEx

by M.S. » 2007年5月26日(土) 09:20

上記のコードを実行すると、

コード: 全て選択

RegEnumKeyEx(hKey,dwIndex1,szObject,VarPtr(dwBufSize),0,0,0,ByVal 0)=ERROR_SUCCESS
でアクセス違反が発生してしまいます。

WinAPI Database for VB Programmer で調べて書いたのですが、
どうも宣言が悪いようなので、どなたか教えてください。

お願いします。

参照: RegEnumKeyEx - WinAPI Database for VB Programmer

元のコード: 「Windows 95 でパフォーマンス レジストリにアクセスする方法」

ページトップ