您好!本人新手小白,初學C++ Builder,現在遇到一問題,希望能求得大神解決!問題描述如下:
1. 本人機器以前用過許多COM設備,使得再接入COM設備時,COM號不從最小的順序開始,而是從之前使用過的開始。比如之前我使用了COM3/4/5/6,然后使用過以后,取下設備,再接其他COM設備時便從COM7/8/9 開始,COM7之前的COM號顯示在使用中(而實際沒有使用)。
2. 為解決以上問題,我嘗試再注冊表里清空注冊表值,然后再試。結果COM7 之前的COM都被釋放了(再沒有顯示折正在使用),但是COM設備的COM號依舊為 COM7/8/9。于是我在 設備管理器中 通過找到COM7/8/9并且手動卸載了COM設備,然后再選擇 掃描檢測硬體改動,發現COM設備 COM號正常的從 COM3/4/5/6 開始。
3. 綜上,需要手動去點擊卸載。因此在此請教 是否有WINDOWS 命令或者 可以用 API 函式來代替 卸載 COM設備。
4 . 以上為問題描述,如有不清楚之處請 大神提出,小弟感激不盡!
uj5u.com熱心網友回復:
可以看看setupapi的相關資料uj5u.com熱心網友回復:
usb串口或串口服務器經常出現的問題,我也就是把注冊表清除掉串口號就行了,不知道為什么你的偏不回1。在“運行”對話框中輸入“regedit”進入注冊表;然后進入 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\COM Name Arbiter這時我們可以找到該數值項:ComDB,它的值代表目前使用中的串口端號。比如1d,它的二進制:0001 1101,則從右往左數代表第1,3,4,5埠被占用。這樣我們只需要把ComDB這個資料項洗掉,關閉注冊表(不用重啟電腦)即可。
uj5u.com熱心網友回復:
感謝各位的回復,我最終用SetupDi函式解決了問題,但是更新后需要重啟,我也是不知原因了。但是目前能:
1 卸載 COM口,但不洗掉驅動
2 清除注冊表,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\COM Name Arbiter的數值項:ComDB
完成以上后 掃描硬體改動,COM口拒正常從1開始向后依次顯示。以前被占用的值均被釋放,但不知為何,重新分配的COM號不能正常使用,需要重啟。目前處于解決 該問題階段。
如各位有其他想法請 給我回復。
uj5u.com熱心網友回復:
[email protected]:snippets/1836419.git渣渣程式以上傳,請各位參考。
uj5u.com熱心網友回復:
解決辦法已創建帖子~https://blog.csdn.net/ailong91/article/details/103302399
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/20631.html
上一篇:二叉平衡樹和散串列
