自动识别串口号
2013-06-20 12:20
190 查看
自动识别当前插入电脑的设备的串口号
需要的头文件#include<Dbt.h>
1.添加消息映射:
ON_WM_DEVICECHANGE()
2.创建消息映射函数
afx_ mg BOOL OnDeviceChange(UINT nEventType ,DWORD_PTR dwData);
3.响应函数实现
OnDeviceChange(UINT nEventType ,DWORD_PTR dwData)
{
if(nEventType == DBT_DEVNODES_CHANGED)
FindPort();
}
4.声明 void FindPort();
5. 定义:
void CWaterStepDlg::FindComPort()
{
HKEY hKey;
if (RegOpenKeyEx(HKEY_LOCAL_MACHINE,_T("Hardware\\DeviceMap\\SerialComm"),NULL,
KEY_READ,&hKey) == ERROR_SUCCESS)
{
TCHAR szPortName[256], szComName[256]; //设备名,串口名
DWORD dwLong, dwSize;
int nCount = 0;
CString str;
while(TRUE)
{
dwLong = dwSize = 256;
if(RegEnumValue(hKey,nCount,szPortName,&dwLong,NULL,NULL,(PUCHAR)szComName,&dwSize) == ERROR_NO_MORE_ITEMS)
break;
nCount++;
str.Format(_T("%s"),szComName);
int len = str.GetLength();
str = str.Right(len-3);
ComX.push_back(atoi(str));
}
RegCloseKey(hKey);
}
else
{
AfxMessageBox(_T("注册表错误:无法打开有关的hKEY!"));
return;
}
}
需要的头文件#include<Dbt.h>
1.添加消息映射:
ON_WM_DEVICECHANGE()
2.创建消息映射函数
afx_ mg BOOL OnDeviceChange(UINT nEventType ,DWORD_PTR dwData);
3.响应函数实现
OnDeviceChange(UINT nEventType ,DWORD_PTR dwData)
{
if(nEventType == DBT_DEVNODES_CHANGED)
FindPort();
}
4.声明 void FindPort();
5. 定义:
void CWaterStepDlg::FindComPort()
{
HKEY hKey;
if (RegOpenKeyEx(HKEY_LOCAL_MACHINE,_T("Hardware\\DeviceMap\\SerialComm"),NULL,
KEY_READ,&hKey) == ERROR_SUCCESS)
{
TCHAR szPortName[256], szComName[256]; //设备名,串口名
DWORD dwLong, dwSize;
int nCount = 0;
CString str;
while(TRUE)
{
dwLong = dwSize = 256;
if(RegEnumValue(hKey,nCount,szPortName,&dwLong,NULL,NULL,(PUCHAR)szComName,&dwSize) == ERROR_NO_MORE_ITEMS)
break;
nCount++;
str.Format(_T("%s"),szComName);
int len = str.GetLength();
str = str.Right(len-3);
ComX.push_back(atoi(str));
}
RegCloseKey(hKey);
}
else
{
AfxMessageBox(_T("注册表错误:无法打开有关的hKEY!"));
return;
}
}
相关文章推荐
- VC6.0 自动识别可用串口 添加至combox 并打开
- 枚举所有串口,并自动识别硬件变动
- VC6.0 自动识别可用串口 添加至combox 并打开
- MFC下自动识别串口的实现
- 串口DMPL指令刻字机自动识别图形轮廓并刻绘py
- VC6.0 自动识别可用串口 添加至combox 并打开
- MFC自动识别串口
- 自动识别串口号|打开COM9之后的串口|XXX.exe已停止工作|Qt textBrowser滚动条设置到底部
- 使用VC6.0 自动识别可用串口 添加至combox 并打开。
- 使用VC6.0 自动识别可用串口 添加至combox 并打开。
- wins下串口 的自动识别
- 串口注册表的自动识别
- Solidworks如何自动打开和关闭特征识别FeatureWorks
- 手机相机自动识别语音提示
- 通过识别浏览器语言, 自动判断选择网站语言
- Asp.net 2.0 自定义控件开发专题讲解[为用户控件增加DataSource属性, 能够自动识别不同数据源](示例代码下载)
- Web搜索中的用户意图的自动识别
- MSSqlServer新建查询不自动识别新建表
- ie中自动识别单屏与双屏(js)
- python 貌似没法自动识别编码