爲了實現在MFC的combobox控件內讀取當前PC機註冊表的串口。
void InitCommCombo(HWND hDlg)
{
HKEY hKey;
DWORD result;
TCHAR valueName[255];
TCHAR data[255];
DWORD valueNameSize,dataSize;
DWORD i;
result = RegOpenKeyEx(HKEY_LOCAL_MACHINE, _T("Hardware\\DeviceMap\\SerialComm"), NULL, KEY_READ, &hKey);//讀取註冊表串口信息
if(ERROR_SUCCESS == result)
{
for(i=0;i<256 ;i++)
{
valueNameSize = dataSize = sizeof(valueName) / sizeof(TCHAR);
result = RegEnumValue(hKey, i, valueName, &valueNameSize, NULL, NULL, (LPBYTE)data, &dataSize);
if(ERROR_NO_MORE_ITEMS == result )
{
break;
}
else
{
//將獲取的數據存在數組裏,併發送數據到COMBO BOX控件內。
pcPortNameBuff[i] = data;
StringCchCat(pcCommName[i],COMM_NAME_LEN,data);
SendDlgItemMessage(hDlg, IDC_COMBO1, CB_ADDSTRING, 0, (LPARAM)data);
}
}
}
else
{
MessageBox (NULL, TEXT("ERROR!"), TEXT("Error"), 0);
}
}