¿C# proporciona un medio efectivo para escanear los puertos COM disponibles? Me gustaría tener una lista desplegable en mi aplicación en la que el usuario pueda seleccionar uno de los puertos COM detectados. Crear y poblar la lista desplegable no es un problema. Solo necesito saber cómo escanear los puertos COM disponibles usando C#. Estoy usando Microsoft Visual C# 2008 Express Edition. Gracias.¿Cómo escanear puertos COM en C#?
Respuesta
System.IO.Ports es el espacio de nombres que desea.
SerialPort.GetPortNames mostrará una lista de todos los puertos COM en serie.
Desafortunadamente, los puertos paralelos no se admiten directamente desde C#, ya que se utilizan con poca frecuencia, excepto en situaciones heredadas. Dicho esto, puede enumerarlos consultando la siguiente clave del registro:
HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\PARALLEL PORTS
Ver el espacio de nombres para más detalles.
Use WMI a través del espacio de nombres System.Management. Un Google rápido encuentra este código:
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 mejor solución! –
SerialPort.GetPortNames utiliza datos de registro que no se mantienen actualizados. Si el usuario está enchufado y desconectando mucho las cosas, he encontrado que el enfoque de clase de gestión es más confiable. – SteveCav
Solo era necesario para enumerar puertos y fui por WMI. Sin embargo, no parece incluir adaptadores de USB a serie, o al menos no están en la lista. Con 'SerialPort.GetPortNames', lo eran, y la lista se actualizó de inmediato. – OregonGhost
- 1. en Java, ¿cómo lograr escanear puertos UDP?
- 2. Lista de puertos COM disponibles
- 3. ¿Cómo encontrar los puertos COM disponibles?
- 4. Listado de puertos serie (COM) en Windows?
- 5. Escuchando puertos Com serie que están en uso
- 6. Cómo escanear un puerto esperando una conexión en una red
- 7. ¿Cómo puedo destruir objetos COM en C#?
- 8. Manejar eventos C# COM en C++
- 9. MSMQ COM API en C#
- 10. Release COM Object en C#
- 11. ¿CreateObject equivalente en C/C++? (COM Interop)
- 12. C++ UDP multiplexación de puertos Socket
- 13. ¿Cómo escanear una carpeta en Java?
- 14. Puertos gratuitos
- 15. PySerial enumerar los puertos
- 16. Cómo escanear filas de HBase eficientemente
- 17. Uso de C#/WIA versión 2.0 en Vista para escanear
- 18. Crear servidor sustituto COM (exe) en C#
- 19. C# + COM Interop, versión determinística
- 20. ¿Cómo declarar e implementar una interfaz COM en C# que hereda de otra interfaz COM?
- 21. Traducir códigos de error COM en C#
- 22. Com + enlace en tiempo de C# 4.0
- 23. Cómo usar COM dll en mi programa C++
- 24. Cómo probar un objeto dependiente de COM en C#
- 25. ¿Cómo funciona la implementación de múltiples interfaces COM en C++?
- 26. ¿Cómo registro una DLL COM escrita en C# con Regsvr32?
- 27. ¿Cómo se enumeran los miembros del objeto COM en C#?
- 28. ¿Cómo funciona Skype sin reenvío de puertos?
- 29. Cómo escanear XML con Apache Velocity?
- 30. ¿Existe una biblioteca multiplataforma de puertos serie C++ que pueda enumerar puertos?
Gracias por los detalles adicionales, pero estoy realmente interesado en enumerar los puertos COM serie (no en paralelo heredado). –
@Jim Fell: pensé que era la primera vez que lo publicaba, pero pensándolo bien decidí ser explícito sobre el paralelo, por las dudas. – Randolpho
@Randolpho y lo aprecio, ya que esto acaba de aparecer en los resultados de búsqueda de Google para LPT. :) –