Czy C# zapewnia skuteczny sposób skanowania dostępnych portów COM? Chciałbym mieć listę rozwijaną w mojej aplikacji, w której użytkownik może wybrać jeden z wykrytych portów COM. Tworzenie i wypełnianie listy rozwijanej nie stanowi problemu. Po prostu muszę wiedzieć, jak skanować dostępne porty COM przy użyciu C#. Korzystam z Microsoft Visual C# 2008 Express Edition. Dzięki.Jak skanować porty COM w języku C#?
Odpowiedz
System.IO.Ports to przestrzeń nazw, którą chcesz.
SerialPort.GetPortNames wyświetli wszystkie porty szeregowe COM.
Niestety, porty równoległe nie są obsługiwane bezpośrednio z C#, ponieważ są one rzadko używane, z wyjątkiem starszych sytuacji. Powiedział, że można je wymienić, przeglądając następujący klucz rejestru:
HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\PARALLEL PORTS
Zobacz nazw dla szczegółów.
Użyj usługi WMI w przestrzeni nazw System.Management. Szybki Google wyszukuje ten kod:
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 lepsze rozwiązanie! –
SerialPort.GetPortNames używa danych rejestru, które nie są aktualizowane. Jeśli użytkownik często podłącza i odłącza różne rzeczy, przekonałem się, że podejście klasy zarządzania jest bardziej niezawodne. – SteveCav
Wystarczyło wyliczyć porty i poszedł do WMI. Jednak wydaje się, że nie obejmuje to adapterów USB do portu szeregowego, a przynajmniej nie ma ich na liście. Z 'SerialPort.GetPortNames', były i lista została natychmiast zaktualizowana. – OregonGhost
- 1. Przekłada kody błędów COM w języku C#
- 2. MSMQ COM API w języku C#
- 3. Jak skanować w poszukiwaniu portu oczekującego na połączenie w sieci
- 4. Jak wyliczyć członków obiektu COM w języku C#?
- 5. Używanie COM w języku R
- 6. Rejestrowanie procedur obsługi zdarzeń .NET COM w języku C++
- 7. Zużywanie zdarzeń COM w języku Python
- 8. Jak mogę otworzyć porty przez usługę Windows?
- 9. Jak skutecznie skanować linie HBase
- 10. Obsługa zdarzeń C# COM w C++
- 11. Znajdź port modemu gsm w języku C#
- 12. Jak zaimplementować wzorzec dispose w języku C# podczas owijania obiektu COM Interop?
- 13. W języku C# jak mogę odsłuchiwać port COM (seryjny), który jest już otwarty?
- 14. C# + COM Interop, deterministic release
- 15. Jak korzystać z TransactionScope w języku C#?
- 16. Jak deklarować porty w Cloud9 używając Pythona
- 17. Jak publikować porty w plikach dokowania
- 18. Powiesić w aplikacji COM z wtyczką C#
- 19. Śledzenie wydania obiektu COM C#.
- 20. C# - Odzyskiwanie właściwości komponentu COM +?
- 21. debugowanie bezpłatnej rejestracji COM (C++)
- 22. Jak mogę uzyskać wolne porty USB wC#?
- 23. ruby regex skanować kontra = ~
- 24. Czy porty docelowe i źródłowe SSH są identyczne (porty symetryczne)?
- 25. COM Interop, serwer RPC jest niedostępny w C#
- 26. Jak zarejestrować DLL DLL napisane w języku C# z Regsvr32?
- 27. lsof wydrukuj numeryczne porty
- 28. Jak ignorować porty wyjściowe z mapami portów
- 29. Jak zadeklarować i zaimplementować interfejs COM w C#, który dziedziczy z innego interfejsu COM?
- 30. Wywołanie C# z natywnego C++, bez/clr lub COM?
Dzięki za dodatkowe szczegóły, ale tak naprawdę interesuje mnie tylko lista portów szeregowych COM (nie równolegle). –
@Jim Fell: Pomyślałem o tym za pierwszym razem, kiedy pisałem, ale w drugiej chwili zdecydowałem, że mówię wprost o paralelach, tak na wszelki wypadek. – Randolpho
@Randolpho i doceniamy to, ponieważ pojawiły się one w wynikach wyszukiwania Google dla LPT. :) –