获取计算机串口号
我现在MFC界面上加一个选择串口号的小按钮,
这个按钮的可选项是计算机本来就有的串口号,
而不是实现已经在程序里定义的串口号~~~
[解决办法]
/* -------- 从注册表里搜寻安装的串口 -----------------------Win2k/XP和Win98/Me的注册表值不同,所以用枚举把串口名字写入一个ComboBox控件里*/void FindCommPort(CComboBox *pComboBox ){ HKEY hKey;#ifdef _DEBUG ASSERT( pComboBox != NULL ); pComboBox->AssertValid();#endif if( ::RegOpenKeyEx( HKEY_LOCAL_MACHINE, "Hardware\\DeviceMap\\SerialComm", NULL, KEY_READ, &hKey) == ERROR_SUCCESS) // 打开串口注册表 { int i=0; char portName[256],commName[256]; DWORD dwLong,dwSize; while(1) { dwLong = dwSize = sizeof(portName); if( ::RegEnumValue( hKey, i, portName, &dwLong, NULL, NULL, (PUCHAR)commName, &dwSize ) == ERROR_NO_MORE_ITEMS ) // 枚举串口 break; pComboBox->AddString( commName ); // commName就是串口名字 i++; } if( pComboBox->GetCount() == 0 ) { ::AfxMessageBox("在HKEY_LOCAL_MACHINE:Hardware\\DeviceMap\\SerialComm里找不到串口!!!" ); } RegCloseKey(hKey); }}