Qt獲取可用串口號

2021-07-26 04:45:04 字數 1803 閱讀 3397

主頁面標頭檔案新增:

private:

///*獲取串口號相關

qstringlist m_listcomboname;

hkey hkey;

lpcwstr subkey;

wchar_t keyname[256]; //鍵名陣列

char keyvalue[256]; //鍵值陣列

dword keysize,type,valuesize;

int indexnum;

///*獲取串口號相關

///*獲取串口號相關

public:

qstring getcomm(int index,qstring keyorvalue); //讀取鍵名

///*獲取串口號相關

主介面cpp檔案

1、新增getcomm函式定義:

///*獲取串口號相關

qstring mainwindow::getcomm(int index,qstring keyorvalue)

//index為索引號,keyorvalue為選擇返回值應該為key還是value

//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(intj=0;jif(keyorvalue=="key")

if(keyorvalue=="value")

}else

//if(::regenumvalue(hkey,indexnum,keyname,&keysize,0,&type,(byte*)keyvalue,&valuesize)==0)列舉鍵名和值

return commresult;

::regclosekey(hkey);//關閉登錄檔

}///*獲取串口號相關

2、主函式新增**

///*獲取串口號相關

qstring path="hkey_local_machine\\hardware\\devicemap\\serialcomm\\";

qsettings * settings = new qsettings(path,qsettings::nativeformat);

qstringlist key = settings->allkeys();

int num=(int)key.size();

qstring value;

for(int i=0;ivalue = getcomm(i,"value");

m_listcomboname

ui->textbrowser->insertplaintext(value+"\r\n");

//新增到下拉選擇框portnamecombobox中

ui->portnamecombobox->additem(value);

}///*獲取串口號相關

labwindows如何自動獲取串口號 AC自動機

我們經常用的字串方法indexof,都是判定兩個字串的包含關係,底層使用類似kmp,bm,sunday這樣的演算法。如果我們要判斷乙個長字串是否包含多個短字串呢?比如在一篇文章找幾個敏感詞,在dna串中找幾個指定的基因對pattern進行預處理,如果我們的模式串存在多個,則不適合了,我們就需要用到一...

Qt開啟串口號大於10的串列埠失敗

打串列埠的名子應該是 port new qextserialport com11 而不應該是 port new qextserialport com11 查到的原因 ms的軟體什麼事情幹不出來,軟體bug吧,com10是標準裝置名稱,自然是可疑開啟的,而直接用 com10或者以上的埠則經過庫函式轉換...

qt 開啟固定 指定的串口號 比如開啟串列埠2

qserialport serial 設定串列埠名,開啟固定的串口號都是通過setportname來實現的,portname格式為 com 串口號,比如com2 serial.setportname com2 設定波特率 serial.setbaudrate qserialport baud9600...