枚举计算机的串口函数

来源:计算机等级考试    发布时间:2012-08-29    计算机等级考试视频    评论

  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}

  编辑特别推荐:

  一道面试题的解析

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答