我想写个程序,枚举出自动运行RUN目录下的全部键,请问用QueryValue该怎么写,两个参数弄不懂

解决方案 »

  1.   

     HKEY hKey;
             char szProductType[BUFSIZE];
             DWORD dwBufLen=BUFSIZE;
             LONG lRet;         lRet = RegOpenKeyEx( HKEY_LOCAL_MACHINE,
                "SYSTEM\\CurrentControlSet\\Control\\ProductOptions",
                0, KEY_QUERY_VALUE, &hKey );
             if( lRet != ERROR_SUCCESS )
                return FALSE;         lRet = RegQueryValueEx( hKey, "ProductType", NULL, NULL,
                (LPBYTE) szProductType, &dwBufLen);
             if( (lRet != ERROR_SUCCESS) || (dwBufLen > BUFSIZE) )
                return FALSE;         RegCloseKey( hKey );
    懂了没?
      

  2.   

    RegQueryValueEx不是只是得到键值吗,这样有枚举吗
      

  3.   

    以下代码是枚举串口的
    你可以参考一下
    HKEY   hKey; if(RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Hardware\\DeviceMap\\SerialComm", NULL, KEY_READ, &hKey)==ERROR_SUCCESS)
    {
    int nCount;
    char szPortName[256], szComName[256];
    DWORD dwLong, dwSize; nCount = 0; m_comboComList.ResetContent();
    while(true)
    {
    dwLong = dwSize = 256;
    if(RegEnumValue(hKey, nCount, szPortName, &dwLong, NULL, NULL, (PUCHAR)szComName, &dwSize)==ERROR_NO_MORE_ITEMS)
    break; m_comboComList.InsertString(nCount, szComName);
    nCount++;
    } RegCloseKey(hKey);
    }