标题:如何在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



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-406364-1-1.html




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

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