C#是否提供了掃描可用COM端口的有效方法?我想在我的應用程序中有一個下拉列表,用戶可以選擇其中一個檢測到的COM端口。創建並填充下拉列表不是問題。我只需要知道如何使用C#掃描可用的COM端口。我正在使用Microsoft Visual C#2008速成版。謝謝。如何在C#中掃描COM端口?
回答
System.IO.Ports是你想要的命名空間。
SerialPort.GetPortNames將列出所有串行COM端口。
不幸的是,並行端口並不直接支持C#,因爲它們在傳統情況下很少使用。這就是說,你可以通過查詢以下注冊表項列出來:
HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\PARALLEL PORTS
見命名空間的細節。
通過System.Management命名空間使用WMI。快速谷歌發現此代碼:
using System;
using System.Management;
public class Foo
{
public static void Main()
{
var instances = new ManagementClass("Win32_SerialPort").GetInstances();
foreach (ManagementObject port in instances)
{
Console.WriteLine("{0}: {1}", port["deviceid"], port["name"]);
}
}
SerialPort.GetPortNames更好的解決方案! – 2010-03-30 21:03:52
SerialPort.GetPortNames使用不保持最新的註冊表數據。如果用戶正在插拔很多東西,我發現管理類方法更可靠。 – SteveCav 2011-09-05 00:52:29
只需要枚舉端口並進入WMI即可。但是,它似乎沒有包含USB到串口適配器,或者至少它們不在列表中。使用'SerialPort.GetPortNames',他們是,並且列表立即更新。 – OregonGhost 2011-09-23 09:40:08
- 1. 掃描COM端口批處理文件
- 2. 加快端口掃描C#
- 3. C/UNIX:端口掃描器
- 4. C++端口掃描器
- 5. 在Java中掃描可用的COM端口
- 6. PHP端口掃描
- 7. python中的端口掃描
- 8. 在goroutines掃描端口
- 9. 端口掃描:如何使掃描更快?
- 10. 加速Windows C端口掃描器
- 11. ,如何實現UDP端口掃描?
- 12. 檢測端口掃描
- 13. Python端口掃描器
- 14. MIRC端口掃描器
- 15. 端口掃描器慢
- 16. Java的端口掃描器
- 17. Nmap端口掃描陣列
- 18. Unix TCP端口掃描器
- 19. Android端口掃描器
- 20. 掃描打開端口
- 21. 如何在C#中發佈通信端口(RS-232 COM端口)
- 22. 如何在python中編寫偵聽'ACK'的端口掃描器?
- 23. 如何使端口號80出現在nmap掃描中?
- 24. .NET中的HTTP端口掃描
- 25. 端口掃描器入口如何工作?
- 26. 如何在C++中掃描字符串
- 27. 在C++中讀取COM端口數據
- 28. 在c中刪除虛擬COM端口#
- 29. C++中的端口掃描程序掛起
- 30. 如何掃描xcode中的IP地址和端口
感謝您的額外的細節,但我真的只是列出串行COM端口(不是傳統的並行)感興趣。 – 2010-03-30 21:48:54
@Jim Fell:我第一次發佈的時候就想到了,但第二個想法決定明確平行,以防萬一。 – Randolpho 2010-03-30 21:53:26
@Randolpho我很欣賞它,因爲這只是針對LPT的Google搜索結果。 :) – 2014-01-14 14:19:37