通過讀登錄檔檢測本機串列埠資訊

2021-06-22 17:20:56 字數 709 閱讀 9327

用qt做上位機,使用串列埠通訊時,想自動掃瞄串列埠裝置,即在下拉列表框中,只顯示已有的串列埠。

本來挺簡單的,只要輪詢hkey_local_machine\hardware\devicemap\serialcomm就能找到已有的串列埠,但qt的qsettings有個bug,如果鍵名裡有斜槓'/',則讀出的鍵值就是空的。參考別人使用api函式讀取鍵值的文章,寫了下面這個函式。

uint32 comportinfo(qstringlist *qslkeyvallist)

//3.排序

// 因為字串排序 "com12" < "com3", 所以不能簡單地qstringlist.sort()

// 故先提取出數字, 再按數字排序, 再附加上字首com

qsort(qltmp);

for (uint32 i=0; i

// 檢查本機串列埠裝置

qstringlist qslkeyvallist;

uint32 uicomcount = comportinfo(&qslkeyvallist);

if(uicomcount == 0)

qmessagebox::about(null, "錯誤", "本機無串列埠裝置,請檢查串列埠線");

qdebug() << qstring("=== 本機有%1個串列埠:").arg(uicomcount) << qslkeyvallist;

通過登錄檔修改MAC位址

通過登錄檔修改mac位址 2008 11 13 mac位址是繫結在網絡卡上的乙個12位 16進製制字元,它們在出廠的時候已經固化在網絡卡中,它是網絡卡在網路中的身份識別。有很多網路環境中都用到了ip和 mac繫結的情況。而 mac位址是先調入記憶體中後傳輸出去的,所以,我們可以通過修改其 mac位址...

通過登錄檔修改tcp ip篩選

regedit e d 1.reg hkey local machine system controlset001 services tcpip 匯出登錄檔裡關於tcp ip篩選的第一處 d test.exe regedit e d 2.reg hkey local machine system c...

通過登錄檔使用動態庫

在.h檔案的宣告 兩個巨集指明了登錄檔中鍵所在的位置 define sp reg path software xfs service providers define logicalname tisreceiptprinter 為指向動態庫中函式指標定義指標類別名,用於宣告該型別的指標 typede...