QT 自动获取可用串口
来源:互联网 发布:鲁大师卸载软件 编辑:程序博客网 时间:2024/06/05 06:46
本来想直接用Settings来获取的,但是串口信息类似 "\Device\Serial0",死活获取不了,用了转义、反斜杠还是获取不到,所以就放弃了,网上好像也没有获取成功的。所以就用winapi来获取了,参考了网上源码cpp文件/* 初始化串口*/void MainWindow::init_comm(){ QString path = "HKEY_LOCAL_MACHINE\\HARDWARE\\DEVICEMAP\\SERIALCOMM"; QSettings *settings = new QSettings(path, QSettings::NativeFormat); QStringList key = settings->allKeys(); QStringList comlist ; QStringList Baudlist ;// QStringList Paritylist ;// QStringList DataBitslist;// QStringList StopBitslist;// QStringList ControlFlowlist; comlist.clear(); /* 取串口名 */ for (int i=0; i<key.size(); i++) { comlist << getcomm(i, "value"); } ui->ComPortcomboBox->addItems(comlist); ....}/* 读取键值*/QString MainWindow::getcomm(int index, QString keyorvalue){ QString commresult; if (::RegOpenKeyEx(HKEY_LOCAL_MACHINE, TEXT("HARDWARE\\DEVICEMAP\\SERIALCOMM"), 0, KEY_READ, &hKey) != 0) { QString error="Cannot open regedit!";//无法打开注册表时返回error return error; }//if(::RegOpenKeyEx(HKEY_LOCAL_MACHINE,subkey,0,KEY_READ,&hKey)!=0) QString keymessage;//键名 QString message; QString valuemessage;//键值 indexnum = index;//要读取键值的索引号 keysize = sizeof(keyname); valuesize = sizeof(keyvalue); if (RegEnumValue(hKey, indexnum, keyname, &keysize, 0, &type, (BYTE*)keyvalue, &valuesize) == 0) { //列举键名和值 for (int i=0; i<(int)keysize; i++) { message = keyname[i]; keymessage.append(message); } for (int j=0; j<(int)valuesize; j++) { if (keyvalue[j] != 0x00) { valuemessage.append(keyvalue[j]); } } if (keyorvalue == "key") { commresult = keymessage; } if (keyorvalue == "value") { commresult=valuemessage; } } else { commresult = "nokey"; } RegCloseKey(hKey);//关闭注册表 return commresult;}
.h文件#include <QSettings>#include <qt_windows.h> HKEY hKey; LPCWSTR subkey; wchar_t keyname[256]; //键名数组 char keyvalue[256]; //键值数组 DWORD keysize,type,valuesize; int indexnum;
1 0
- QT 自动获取可用串口
- Qt获取可用串口号
- 用Qt获取系统可用的串口信息
- 用Qt获取系统可用的串口信息
- 获取系统可用串口列表
- CPP -- 获取可用计算机串口
- Qt 获取硬盘可用字节
- C#获取本机可用串口
- epoll 获取串口数据 亲测可用
- C#获取串口列表(可用于实现实时监控串口)
- QT 读串口可用代码初步调试通过
- 使用Python自动获取可用代理列表
- GetPort(nType)获取计算机可用端口(串口或并口)
- VC++获取计算机可用串口并放入ComboBox控件中
- 气象自动监测站QT程序设计(二):串口通信与数据处理
- Qt串口
- Qt实现十六进制接收文本和显示文本(可用于串口的十六进制)
- 检测可用串口
- 十大免费DNS域名解析服务-稳定,可靠,好用的免费DNS服务
- JAVA基础必备(十三)——反射(二)
- 韩顺平PHP学习视频笔记整理028apache服务器使用及配置③ apache虚拟目录
- schedule_delayed_work()
- hdu 2716 字符的转换
- QT 自动获取可用串口
- XIB的使用
- Express安装提示:'express' 不是内部或外部命令,也不是可运行的程序或批处理文件。
- 基于Krpano 的全景漫游系统的实现
- easyui 扩展tree 为 ztree(id, pid)的扁平数据结构集
- sed 中如何替换换行符
- jQuery UI
- SQL Server 2005实现负载均衡
- 刚遇到一个奇葩的事件