Use RegEnumKey, RegEnumKeyEx,RegEnumValue functions

解决方案 »

  1.   

    用TRegistry类读取,keyexists判断键值存在与否,hassubkeys判断有否子键,然后再读取各个键值
      

  2.   

    读键值:
    DWORD index=0;
    bool stop=false;
    result=RegOpenKeyEx(HKEY_LOCAL_MACHINE,“SOFTWARE\\ODBC\\datasources",......,&hkey);
    if(result==ERROR_SUCCESS)
     while(!stop)
     {
      result=RegEnumValue(hkey,index,......);
    if(result==ERROR_SUCCESS)
    {
                ......
    }
    else
    stop=true;
    index++;
    }
    读子键:
    DWORD index=0;
    bool stop=false;
    result=RegOpenKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\ODBC",......,&hkey);
    if(result==ERROR_SUCCESS)
     while(!stop)
     {
      result=RegEnumKeyEx(hkey,index,......);
    if(result==ERROR_SUCCESS)
    {
                ......
    }
    else
    stop=true;
    index++;
    }
      

  3.   

    他们都说得很对,我来晚了,综合一下就可以了。
    读键值,读子键,RegEnumKey, RegEnumKeyEx,RegEnumValue 
    然后做一个递归程序,你不会??
      

  4.   

        procedure GetKeyNames(Strings: TStrings);
     返回所有键名
        procedure GetValueNames(Strings: TStrings);
     返回所有的值