wangxin_china
驱动中牛
驱动中牛
  • 注册日期2003-03-28
  • 最后登录2008-09-30
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望18点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2871回复:4

获取系统串口数量(不用打开串口的方法)

楼主#
更多 发布于:2004-12-08 14:21
最好在98下也可以使用。
snowStart
驱动老牛
驱动老牛
  • 注册日期2004-04-06
  • 最后登录2011-06-02
  • 粉丝0
  • 关注0
  • 积分95分
  • 威望19点
  • 贡献值177点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-12-08 18:11
从注册表中枚举
学习,关注,交流中... [email=fengyu@163.com]Email:snowstarth@163.com[/email] [url]http://bbs.zndev.com/?a=snowStart[/url]
wangxin_china
驱动中牛
驱动中牛
  • 注册日期2003-03-28
  • 最后登录2008-09-30
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望18点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-12-08 20:48
这个方法不知道可不可以动态刷新,比如一个虚拟串口设备连接了他知道么?我手边没有USB串口,想知道一下。枚举设备的方法98下不知道怎么做。
Gong_XG
驱动太牛
驱动太牛
  • 注册日期2002-10-01
  • 最后登录2010-11-25
  • 粉丝0
  • 关注0
  • 积分313分
  • 威望46点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-12-12 21:15
最简单的方法:
打开com1,成功吗?
打开com2,成功吗?
.................
最多四个!!!
qinxg
驱动小牛
驱动小牛
  • 注册日期2002-11-15
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分37分
  • 威望27点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-03-15 13:19
枚举注册表:
/* -------- 从注册表里搜寻安装的串口 -----------------------
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里找不到串口!!!\" );
// ::PostQuitMessage(1);
}

RegCloseKey(hKey);
}
}

游客

返回顶部