1这个函数是读注册表的
view source
01void FindCommPort(CComboBox *pComboBox )
02{
03 HKEY hKey;
04#ifdef _DEBUG
05 ASSERT( pComboBox != NULL );
06 pComboBox->AssertValid();
07#endif
08 if(::RegOpenKeyEx( HKEY_LOCAL_MACHINE,
09 "Hardware//DeviceMap//SerialComm",
10 NULL,
11 KEY_READ,
12 &hKey ) == ERROR_SUCCESS ) //打开串口注册表对应的键值
13 {
14 int i=0;
15 char portName[256],commName[256];
16 DWORD dwLong,dwSize;
17
18 while(1)
19 {
20 dwLong = dwSize = sizeof(portName);
21 if( ::RegEnumValue( hKey,
22 i,
23 portName,
24 &dwLong,
25 NULL,
26 NULL,
27 (PUCHAR)commName,
28 &dwSize ) == ERROR_NO_MORE_ITEMS )// 枚举串口
29 break;
30
31 pComboBox->AddString( commName ); // commName就是串口名字
32 i++;
33 }
34
35 if( pComboBox->GetCount() == 0 )
36 {
37 ::AfxMessageBox("在HKEY_LOCAL_MACHINE:Hardware//DeviceMap//SerialComm里找不到串口!!!");
38 }
39
40 RegCloseKey(hKey);
41 }
42}
编辑特别推荐:
一道面试题的解析
① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;
② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。