注册 登录
编程论坛 VFP论坛

用RegEnumKeyEx()函数枚举注册表子键的问题

xqbg111 发布于 2021-10-12 17:58, 1367 次点击
使用Windows API 函数RegEnumKeyEx()枚举系统注册表某个子键下面的子键,调用的时候怎么总是不成功。这个函数有8个参数,后面4个参数应该怎样赋值才对?用值传递还是地址传递?参数值给多少才能正确运行?请有经验的大师指点一二,在线急等,谢谢!
2 回复
#2
吹水佬2021-10-12 20:39
只有本站会员才能查看附件,请 登录

程序代码:
DECLARE long RegOpenKeyEx IN Advapi32 long,string@,long,long,long@
DECLARE long RegCloseKey IN Advapi32 long
DECLARE long RegQueryInfoKey IN Advapi32 long,long,long,long,long@,long,long,long,long,long,long,long
DECLARE long RegEnumKeyEx IN Advapi32 long,long,string@,long@,long,long,long,long

hKey = 0
IF RegOpenKeyEx(0x80000001,;   && HKEY_CURRENT_USER
                "SOFTWARE\Microsoft",;
                0,;
                0x20019,;      && KEY_READ
                @hKey) != 0    && ERROR_SUCCESS
    RETURN
ENDIF
cSubKeys = 0
RegQueryInfoKey(hKey,0,0,0,@cSubKeys,0,0,0,0,0,0,0)     
IF cSubKeys > 0
    CREATE CURSOR tt (num I, SubKey C(254))
    achKey = REPLICATE(0h00,254)
    FOR i=1 TO cSubKeys
        cbName = 254
        IF RegEnumKeyEx(hKey,i-1,@achKey,@cbName,0,0,0,0)==0
            INSERT INTO tt VALUES (i, LEFT(achKey,cbName))
        ENDIF
    ENDFOR
    GO TOP
    BROWSE TITLE "HKEY_CURRENT_USER\SOFTWARE\Microsoft"
ENDIF
RegCloseKey(hKey)
#3
schtg2021-10-13 06:54
谢谢吹版!
1