[ここをクリックすると内容が表示されます]
上記のコードを実行すると、
コード: 全て選択
declare function RegEnumKeyEx lib "advapi32" alias "RegEnumKeyExA" (hKey As HKEY,ByVal dwIndex As DWord,ByVal lpName As Byte,lpcName As VoidPtr,ByVal lpReserved As Long,ByVal lpClass As String,ByVal lpcClass As DWord,ByRef lpftLastWriteTime As FILETIME) As Long
const DIFFFLAGLEN=6
const PERFENUMKEY="System\CurrentControlSet\Control\PerfStats\Enum"
dim szCounter[MAX_PATH] as Byte
dim szObject[MAX_PATH] as Byte
dim szName[MAX_PATH] as Byte
dim lpszDescBuff=0 as LPSTR
dim szDiffFlag[DIFFFLAGLEN] as Byte
Sub MainWnd_Create(ByRef CreateStruct As CREATESTRUCT)
dim rc as DWord
dim dwIndex1 as DWord, dwIndex2 as DWord
dim dwType as DWord
dim dwBufSize as DWord
dim hKey as HKEY
dim hObject as HKEY
dim hCounter as HKEY
rc=RegOpenKeyEx(HKEY_LOCAL_MACHINE,PERFENUMKEY,0,KEY_READ,hKey)
if rc=ERROR_SUCCESS then
dwBufSize=MAX_PATH
dwIndex1=0
' オブジェクトを列挙します。
while RegEnumKeyEx(hKey,dwIndex1,szObject,VarPtr(dwBufSize),0,0,0,ByVal 0)=ERROR_SUCCESS
dwIndex1++
if rc=RegOpenKeyEx(hKey,szObject,0,KEY_READ,hObject)=ERROR_SUCCESS then
' hObject を使ってオープン キーの情報を処理します。
End If
RegCloseKey(hObject)
dwBufSize=MAX_PATH
Wend
RegCloseKey(hKey)
Else
MessageBox(hMainWnd,"Error "+rc+" Opening "+PERFENUMKEY,0,MB_OK or MB_ICONSTOP)
End If
End Sub
コード: 全て選択
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 でパフォーマンス レジストリにアクセスする方法」