哪位大侠知道一下,多谢

解决方案 »

  1.   

    int GetSerialPort(CStringArray& arrCom)
    {
    arrCom.RemoveAll(); HKEY hkey;  
    LONG lRes = RegOpenKeyEx(HKEY_LOCAL_MACHINE, _T("HARDWARE\\DEVICEMAP\\SERIALCOMM"), NULL, KEY_QUERY_VALUE | KEY_ENUMERATE_SUB_KEYS | KEY_READ, &hkey);  
    if (lRes == ERROR_SUCCESS)  
    {
    TCHAR tchKey[MAX_PATH];  
    TCHAR tchValue[20];
    DWORD dwIndex = 0;
    DWORD dwType = REG_SZ;
    while(lRes == ERROR_SUCCESS)
    {
    DWORD dwCount = MAX_PATH;
    DWORD dwVCount = 20;
    lRes = RegEnumValue(hkey, dwIndex++, tchKey, &dwCount, NULL, &dwType, (LPBYTE)tchValue, &dwVCount);
    if(lRes == ERROR_SUCCESS)
    {
    if((dwVCount > 0) && (dwCount > 0))
    {
    arrCom.Add(tchValue);
    }
    }
    }
    }
    RegCloseKey(hkey); return arrCom.GetSize();
    }