谢谢各位了。

解决方案 »

  1.   

    RegEnumKeyEx()这个 函数如何使用呢,有没有代码
      

  2.   

    下面是VC中完整的可运行程序:#include "stdafx.h"
    #include <stdio.h>
    #include <windows.h>#define SOFTPATH    "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall"// 功能:列出指定键下的所有子键名
    BOOL MyEnumKey(LPTSTR szKeyPath)
    {
    HKEY hKey;
        LONG result;

        // 打开注册表
        result = ::RegOpenKeyEx (HKEY_LOCAL_MACHINE, szKeyPath, 0, KEY_READ, &hKey);
        
    if (result != ERROR_SUCCESS)
        {
            return FALSE;
        }

        TCHAR szKey[MAX_PATH];
        LPTSTR lpName = szKey;
        DWORD dwIndex = 0;      // 用于列举时的递增索引

        while (1)
        {
            memset(szKey, 0, sizeof(szKey));
            // 列举指定键下的所有子键, lpName用于接收子键的名字
            result = RegEnumKey(hKey, dwIndex++, lpName, MAX_PATH+1); if (result == ERROR_NO_MORE_ITEMS)   
            {
                break; // 所有子键已被列举完毕
            } if (result != ERROR_SUCCESS)
    {
    break;
    }

    // 显示
            printf("%03d: keyName = %s\r\n", dwIndex, szKey);
        }

    // 关闭注册表
        ::RegCloseKey(hKey);
        return TRUE;
    }int main(int argc, char* argv[])
    {
    MyEnumKey(SOFTPATH); getchar(); return 0;
    }