Il C# fornisce un mezzo efficace per la scansione delle porte COM disponibili? Mi piacerebbe avere un elenco a discesa nella mia applicazione in cui l'utente può selezionare una delle porte COM rilevate. La creazione e la compilazione dell'elenco a discesa non è un problema. Ho solo bisogno di sapere come cercare le porte COM disponibili usando C#. Sto usando Microsoft Visual C# 2008 Express Edition. Grazie.Come cercare le porte COM in C#?
risposta
System.IO.Ports è lo spazio dei nomi che si desidera.
SerialPort.GetPortNames elencherà tutte le porte COM seriali.
Sfortunatamente, le porte parallele non sono supportate direttamente da C#, dato che sono usate molto raramente tranne che in situazioni legacy. Detto questo, è possibile elencarle interrogando la seguente chiave di registro:
HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\PARALLEL PORTS
Vedi lo spazio dei nomi per i dettagli.
Utilizzare WMI attraverso lo spazio dei nomi System.Management. Un rapido Google trova questo codice:
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 soluzione migliore! –
SerialPort.GetPortNames utilizza dati del registro non aggiornati. Se l'utente sta collegando e scollegando molto le cose, ho trovato che l'approccio managementclass è più affidabile. – SteveCav
Necessario solo per enumerare le porte e per WMI. Tuttavia, non sembra includere adattatori da USB a seriale, o almeno non inclusi nell'elenco. Con 'SerialPort.GetPortNames', lo erano, e l'elenco è stato aggiornato immediatamente. – OregonGhost
- 1. Come trovare le porte COM disponibili?
- 2. Ascolto di porte COM seriali in uso
- 3. Elenco porte seriali (COM) su Windows?
- 4. Nome o identificazione porte seriali (COM)
- 5. C++ linux rileva tutte le porte seriali
- 6. Come ignorare le porte di output con le mappe delle porte
- 7. Rilascio dell'oggetto COM in C#
- 8. Come creare un oggetto COM in un'applicazione UWP? (C#)
- 9. Come pubblicare le porte nei file docker
- 10. Come ospitare WCF tramite le porte TCP?
- 11. Gestisci eventi COM C# in C++
- 12. mongodb riconfigurare le porte shard
- 13. GMail SMTP via C#. Errori netti su tutte le porte
- 14. Com + tardiva C# 4.0
- 15. Come dichiarare le porte in Cloud9 usando Python
- 16. Nuova porta COM disponibile evento
- 17. C# + COM Interop, rilascio deterministico
- 18. Come impostare Spring Boot per eseguire le porte HTTPS/HTTP
- 19. Come ottengo le porte aperte da un servizio di Windows?
- 20. C# - Recupera le proprietà di un componente COM +?
- 21. Come funziona l'implementazione di più interfacce COM in C++?
- 22. Come enumerare i membri dell'oggetto COM in C#?
- 23. Come cercare in più domini usando System.DirectoryServices.AccountManagement?
- 24. Come cercare NSMutableArray in Objective C-iPhone app
- 25. Come cercare in Elasticsearch
- 26. Come testare un oggetto dipendente dalla COM in C#
- 27. Come verificare se una DLL COM è registrata in C#
- 28. Come registrare una DLL COM scritta in C# con Regsvr32?
- 29. Sono richieste le porte di Azure?
- 30. Come dichiarare e implementare un'interfaccia COM su C# che eredita da un'altra interfaccia COM?
Grazie per i dettagli aggiuntivi, ma sono davvero interessato solo a elencare le porte COM seriali (non legacy parallele). –
@Jim Fell: l'ho immaginato tanto la prima volta che l'ho postato, ma a pensarci bene ho deciso di essere esplicito sul parallelo, per ogni evenienza. – Randolpho
@Randolpho e lo apprezzo perché è appena uscito da un risultato di ricerca di Google per LPT. :) –