VC 搜索本地可用串口
2013-06-26 10:57
260 查看
最简单的方法:枚举
复杂一点的办法:参考驱动开发,查看系统设备的符号表。
typedef struct tagPT_PortsArry
{
int nPortIndex[256];
bool bEnable[256];
}PT_PortsArry, far *LPT_PortsArry;
//------------------------------------------------------------------------------------------------
int QueryComPorts(LPT_PortsArry ptPortsArry)
{
HANDLE hCom;
char cPortName[128];
int i;
int nPortsCount = 0;//串口个数
if (ptPortsArry == NULL)
return -1;
for (i = 1; i <= 256; i ++)
{
sprintf (cPortName, "COM%d", i);
hCom = CreateFile (cPortName, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
ptPortsArry.nPortIndex[i - 1] = i;
if (hCom == INVALID_HANDLE_VALUE)
{
ptPortsArry.bEnable[i - 1] = FALSE;
}
else
{
ptPortsArry.bEnable[i - 1] = TRUE;
CloseHandle (hCom);
nPortsCount ++;
}
}
return nPortsCount;
}
复杂一点的办法:参考驱动开发,查看系统设备的符号表。
typedef struct tagPT_PortsArry
{
int nPortIndex[256];
bool bEnable[256];
}PT_PortsArry, far *LPT_PortsArry;
//------------------------------------------------------------------------------------------------
int QueryComPorts(LPT_PortsArry ptPortsArry)
{
HANDLE hCom;
char cPortName[128];
int i;
int nPortsCount = 0;//串口个数
if (ptPortsArry == NULL)
return -1;
for (i = 1; i <= 256; i ++)
{
sprintf (cPortName, "COM%d", i);
hCom = CreateFile (cPortName, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
ptPortsArry.nPortIndex[i - 1] = i;
if (hCom == INVALID_HANDLE_VALUE)
{
ptPortsArry.bEnable[i - 1] = FALSE;
}
else
{
ptPortsArry.bEnable[i - 1] = TRUE;
CloseHandle (hCom);
nPortsCount ++;
}
}
return nPortsCount;
}
相关文章推荐
- Python实现的本地文件搜索功能示例【测试可用】
- VC枚举电脑上可用串口
- VC得到可用的串口列表
- (转)VC得到可用的串口列表
- VC++获取计算机可用串口并放入ComboBox控件中
- mfc 搜索电脑所有可用串口数
- vc串口编程使用mscomm控件的,接受字符个数多余8个时,会重复进中断的OnCommMscomm()的处理对策
- 如何查看linux下串口是否可用?串口名称等?
- VC枚举串口端口应用
- 自动检测可用串口实现串口通讯程序(可实现串口热插拔检测)
- vc枚举所有可用的端口号
- 百度搜索结果整合百度地图 强化本地搜索
- GetPort(nType)获取计算机可用端口(串口或并口)
- WIN7下chm索引和搜索不可用的解决方法
- 串口通信基础知识及VC++实现
- VC串口编程
- VC2010 用MSComm打开串口
- VC++循环读写串口
- 深入浅出VC++串口编程之第三方类
- vc 全面操纵光驱(状态,是可用)