Laden...

Ermitteln/Anzeigen aller COM Ports

Erstellt von maik vor 18 Jahren Letzter Beitrag vor 18 Jahren 3.071 Views
M
maik Themenstarter:in
170 Beiträge seit 2005
vor 18 Jahren
Ermitteln/Anzeigen aller COM Ports

Hallo!

Ich möchte in meiner Anwendung gerne alle zur Verfügung stehenden COM Ports in einem DropDown Element auflisten.
Gibt es dafür in einer Klasse eine Property oder Methode?

Vielen Dank!

Gruß
Maik

S
8.746 Beiträge seit 2005
vor 18 Jahren

Stichwort: WMI

M
maik Themenstarter:in
170 Beiträge seit 2005
vor 18 Jahren

Woher bekomme ich die Objekte die ich abfragen kann?
z.B. Win32_Share für Netzlaufwerke nur eben für COM Ports?

-> Win32_COM vielleicht?

Danke!

D
128 Beiträge seit 2005
vor 18 Jahren

Hoi, hoi!

Es kommt auch darauf an, welche Version des Framework Du benutzt. Im 2er Framework kann das wohl fix geloest werden. Dort findest Du folgendes:

Namespace: System.IO.Ports
Klasse: SerialPorst
Methode: GetPortNames => Gets an array of serial port names for the current computer.

Wenn Du das 1.1er Framework noch hast, musst Du das wohl von Hand machen.

MFG, DaMoe

M
maik Themenstarter:in
170 Beiträge seit 2005
vor 18 Jahren

was heißt von hand? ich benutze das 1.1 framework!
ich weiß ja nichtmal welches objekt ich abfragen muss um eine liste der comports zu erhalten! 🙂

S
8.746 Beiträge seit 2005
vor 18 Jahren

Hier Code für 1.1 (geht auch unter 2.0):


using System;
using System.Management;

namespace ConsoleApplication11
{
    class Program
    {
        static void Main(string[] args)
        {
            ManagementClass c = new ManagementClass("Win32_SerialPort");

            foreach (ManagementObject o in c.GetInstances())
            {
                foreach (PropertyData pd in o.Properties)
                    System.Console.WriteLine("{0} = {1}", pd.Name, pd.Value);
            }
            Console.ReadKey();
        }
    }
}
 
M
maik Themenstarter:in
170 Beiträge seit 2005
vor 18 Jahren

Hm... Eigentlich möchte ich eher eine Auflistung wie:

COM1
COM2
COM3
usw...

Damit ich diese dann direkt laden und ansprechen kanN!

S
8.746 Beiträge seit 2005
vor 18 Jahren

Faulpelz.... einfach mal ausführen, gucken, "COM1" finden, nachdenken und dann implementieren.

M
maik Themenstarter:in
170 Beiträge seit 2005
vor 18 Jahren

mit faulpelz triffst du den nagel auf den kopf! 😉
ok, ich habs ausgeführt, da kommen dann eben alle seriellen schnittstellen raus und das sind mächtig viele...

danke für die hilfe!

gruß
maik

S
8.746 Beiträge seit 2005
vor 18 Jahren

Und wie du feststellen wirst, gibt es da ein Property namens DeviceID, welches genau deinen gesuchten String "COM1/2/..." enthält. Statt alle Properties auszugeben, nimm halt nur den einen....

S
8.746 Beiträge seit 2005
vor 18 Jahren

Übrigens: Bei virtuellen COM-Ports kann es knifflig werden. Der WMI-Support muss durch den Treiber gewährleistet sein. Das ist nicht immer der Fall. Ich hatte hier schon Bluetooth-COM-Ports, die waren nicht via WMI sichtbar.