VC++通过注册表枚举串口
2014-10-16 14:57
423 查看
文章来源:/article/7919799.html
[cpp] view
plaincopy
CStringArray m_Serial_Port;
BOOL Enum_Serial_Port() //枚举串口
{
m_Serial_Port.RemoveAll();
HKEY hKey;
LPCTSTR data_Set = _T("HARDWARE\\DEVICEMAP\\SERIALCOMM\\");
LONG ret0 = RegOpenKeyEx(HKEY_LOCAL_MACHINE, data_Set, 0, KEY_READ, &hKey);
if(ret0 != ERROR_SUCCESS)
{
AfxMessageBox("错误:无法打开有关的hKEY");
return FALSE;
}
DWORD dwIndex = 0;
while(1)
{
LONG Status;
CHAR Name[256]={0};
UCHAR szPortName[80]={0};
DWORD dwName;
DWORD dwSizeofPortName;
DWORD Type;
dwName = sizeof(Name);
dwSizeofPortName = sizeof(szPortName);
Status = RegEnumValue(hKey, dwIndex++, Name, &dwName, NULL, &Type,
szPortName, &dwSizeofPortName);
if((Status == ERROR_SUCCESS)||(Status == ERROR_MORE_DATA))
{
CString str = szPortName;
m_Serial_Port.Add(str);
}
else
{
break;
}
}
RegCloseKey(hKey);
return(m_Serial_Port.GetSize() > 0 ? TRUE:FALSE);
}
[cpp] view
plaincopy
CStringArray m_Serial_Port;
BOOL Enum_Serial_Port() //枚举串口
{
m_Serial_Port.RemoveAll();
HKEY hKey;
LPCTSTR data_Set = _T("HARDWARE\\DEVICEMAP\\SERIALCOMM\\");
LONG ret0 = RegOpenKeyEx(HKEY_LOCAL_MACHINE, data_Set, 0, KEY_READ, &hKey);
if(ret0 != ERROR_SUCCESS)
{
AfxMessageBox("错误:无法打开有关的hKEY");
return FALSE;
}
DWORD dwIndex = 0;
while(1)
{
LONG Status;
CHAR Name[256]={0};
UCHAR szPortName[80]={0};
DWORD dwName;
DWORD dwSizeofPortName;
DWORD Type;
dwName = sizeof(Name);
dwSizeofPortName = sizeof(szPortName);
Status = RegEnumValue(hKey, dwIndex++, Name, &dwName, NULL, &Type,
szPortName, &dwSizeofPortName);
if((Status == ERROR_SUCCESS)||(Status == ERROR_MORE_DATA))
{
CString str = szPortName;
m_Serial_Port.Add(str);
}
else
{
break;
}
}
RegCloseKey(hKey);
return(m_Serial_Port.GetSize() > 0 ? TRUE:FALSE);
}
相关文章推荐
- VC++ 动态检测串口的热插拔(一)通过注册表实现
- VC++ 动态检测串口的热插拔(二)通过注册表实现
- 通过注册表枚举串口
- VC编程通过访问注册表得到串口数量
- VC++ 动态检测串口的热插拔(一)通过注册表实现
- Qt通过注册表枚举串口(winXP和win7测试通过)
- VC++ 动态检测串口的热插拔(一)通过注册表实现
- 通过查询注册表,枚举所有串口,并加载到下拉列表中
- VC枚举计算机串口资料(非注册表方法)
- 通过注册表或 GetDataSources 方法枚举SQL Server实例
- vb.net 通过注册表读出系统所有串口
- VC访问西门子S7-200的串口协议分析(实测通过)
- VC中通过查询注册表判断是否为无线网卡
- VC中通过查询注册表判断是否无线网卡
- VC通过注册表获取获取某个应用程序的安装路径
- MFC注册表枚举串口
- 通过注册表检测是否安装了VC++ 2008 SP1 redistributable。
- VC常用代码之通过注册表寻找应用程序路径
- VC常用代码之通过注册表寻找应用程序路径
- vc 枚举串口