| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4158 人关注过本帖
标题:如何在win7下,用vc实现自动获取当前可用的串口号?
只看楼主 加入收藏
jxlcxm
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-5-6
收藏
 问题点数:0 回复次数:0 
如何在win7下,用vc实现自动获取当前可用的串口号?
这是我在网上找到的实现方法,这样做是否可以,我调试运行的时候,插上一个串口后,设备管理器上有显示是COM3,但是第一条打开注册表的函数,返回值一直是2,这说明
没有打开注册表,怎么会这样了?如何实现自动获取当前计算机上的有效串口?
unsigned int CServoCtrlDlg::GetSerialPort()
{  
    HKEY hkey;
    LONG lRes = RegOpenKeyEx(HKEY_LOCAL_MACHINE, _T( "HARDWARE\\DEVICEMAP\\SERIALCOMM "), NULL, KEY_READ, &hkey);
    if (lRes == ERROR_SUCCESS)
    {
        TCHAR tchKey[MAX_PATH];
        TCHAR tchValue[20];
        DWORD dwIndex = 0;
        DWORD dwType = REG_SZ;
        for(; dwIndex <= 20 ; dwIndex++)
        {
            DWORD dwCount = MAX_PATH;
            DWORD dwVCount = 20;
            lRes = RegEnumValue(hkey, dwIndex, tchKey, &dwCount, NULL, &dwType, (LPBYTE)tchValue, &dwVCount);
            if(lRes == ERROR_SUCCESS)
            {
                RegCloseKey(hkey);
                return (dwIndex + 1);
            }
        }
    }
    AfxMessageBox("在HKEY_LOCAL_MACHINE:Hardware\\DeviceMap\\SerialComm里找不到串口!!!");
    RegCloseKey(hkey);
    return 0;
   
 }
搜索更多相关主题的帖子: 打开注册表 如何 
2013-05-06 20:58
快速回复:如何在win7下,用vc实现自动获取当前可用的串口号?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.041029 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved