[問題] Registry的SerialComm機碼

看板C_and_CPP作者 (老千)時間11年前 (2012/12/12 10:10), 編輯推噓1(102)
留言3則, 2人參與, 最新討論串1/1
我做的事情是這樣: 1.開啟已知存在的COM port => CreateFile() 2.另外開一個thread 持續去poll該COM port是否被拔除 3.若發現已被拔除,才呼叫CloseHandle() 目前對於2的作法是: (1) 查找HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM 發現即使裝置已被拔除,該清單仍未更新 => 顯然被CreateFile鎖住了 (2) QueryDosDevice() 同(1),只要CreateFile()的handle還開著,就不會更新 但是該裝置在裝置管理員中的圖示明明已經消失了 顯然有其他方式查詢 懇請賜教,謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.251.192.2

12/12 12:04, , 1F
不用那麼麻煩, 用GetCommState去polling就可以了.
12/12 12:04, 1F

12/12 12:04, , 2F
COM被拔掉的話, GetCommState會失敗.
12/12 12:04, 2F

12/12 14:01, , 3F
太感謝了!!
12/12 14:01, 3F
文章代碼(AID): #1Gn-Uo78 (C_and_CPP)