![](/img/trans.png)
[英]How to locate a serial or tcp converter on a COM port by its name or ID?
[英]How to find a Serial port device in .NET with its driver name?
我有一台通過串行端口連接到計算機的設備。 我知道在.NET中打開端口,我可以通過COM號碼來調用該端口。 例如
SerialPort s = new SerialPort("COM9");
s.Open();
調用COM9上的設備。 但是,如果我在其他計算機上運行程序和串行端口設備,則可以更改端口號,但是每台計算機上的設備名稱始終相同。 例如,在此圖片中,無論COM端口號如何,我都希望與“ Numato Lab 8通道USB中繼模塊”進行通信(名稱始終與端口號相同)。
問題是:是否仍然可以使用上面在設備管理器中顯示的名稱而不是其端口號來代替上面的代碼來調用我的設備? 喜歡
SerialPort s = new SerialPort("Numato Lab 8 Channel USB Relay Module");
您必須訪問WMI才能獲取該信息。 您可以使用ORMi庫進行輕松訪問:
只需創建一個類:
[WMIClass("Win32_PnPEntity")]
public class Device
{
public string Caption { get; set;}
}
然后查詢:
WMIHelper helper = new WMIHelper("root\\CimV2");
Device device = helper.Query<Device>().ToList().Where(p => p.Caption == "Numato Lab 8 Channel USB Relay Module").SingleOrDefault();
如果要獲取更多信息,請向Device
類添加更多屬性。 屬性應與Win32_PnPEntity
類的WMI規范匹配。
一旦獲得設備,您可能還必須查詢Win32_SerialPort
類,以了解設備連接到哪個端口。 我留給你調查。
如果您想自己完成所有工作,在這里您得到了很大的解釋:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.