请问大侠们一个问题,小弟想有选择性的读HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\PCIIDE下的部分键和子健值(就是有选择性的读,不读叶子节点) 如果用RegQueryInfoKey() RegEnumKeyEx() 写一些方法去遍历HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\PCIIDE 下的好象不好控制不读叶子接点吗?
RegEnumValue(m_hKey,dinx,valuename,&nsize,NULL,&k,vari,&ncbvari) 这个是枚举 不知道是不是 他是对指定的同一层的枚举出来,还是把从指定下的所有都读出来.希望大侠们提供点方法,小弟不胜感激,跪谢,跪谢!!!

解决方案 »

  1.   

    char log_diry[50];
        HKEY hKey;    LONG rt = RegOpenKeyEx( HKEY_LOCAL_MACHINE, "SYSTEM\\ControlSet001\\Services\\W3SVC\\Parameters", 0, KEY_READ, &hKey);
        if(rt == ERROR_SUCCESS)
        {
            unsigned long buflen = sizeof( log_diry );
            RegQueryValueEx( hKey, "LogFileDirectory", NULL, NULL, (LPBYTE)&log_diry, &buflen );
            RegCloseKey(hKey);
        }
      

  2.   

    遍历HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\PCIIDE 
    获得所有的叶子
    找出你所需要的
      

  3.   

    关健问题是 我做的这个东西,不只在一台机子上运行,注册表信息不固定啊,唯一注定的就是PCIIDE (HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\PCIIDE) 这个键 所以不好找啊 但我只想读PCIIDE键下的每个子建的头两个节点的信息,其他剩余的不读 江湖救急 万分感谢!!!
      

  4.   

    不是例子都给你了吗?我读的是HKEY_LOCAL_MACHINE\
    SYSTEM\ControlSet001\Services\W3SVC\Parameters的LogFileDirectory键
      

  5.   

    大哥 不是啊,您可能没弄懂我的意思  比如SYSTEM\ControlSet001\Services\W3SVC\Parameters
    是定值,而LogFileDirectory 肯定是会变 因为我对的是机器以往硬件的信息检查 而且 程序是要求执行在 不同的机器上通用 。谢谢 大哥 谢谢 有选择性的读HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\PCIIDE下的部分键和子健值(就是有选择性的读,不读叶子节点) 如果用RegQueryInfoKey() RegEnumKeyEx() 写一些方法去遍历HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\PCIIDE 下的好象不好控制不读叶子接点吗?
    RegEnumValue(m_hKey,dinx,valuename,&nsize,NULL,&k,vari,&ncbvari) 这个是枚举 不知道是不是 他是对指定的同一层的枚举出来,还是把从指定下的所有都读出来.希望大侠们提供点方法,小弟不胜感激,跪谢,跪谢!!!