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