主頁面標頭檔案新增:
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/新增文字瀏覽器textbrowser中
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...