Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Richtige! ComPorts aus der Registry? holen. (https://www.delphipraxis.net/3283-richtige-comports-aus-der-registry-holen.html)

Daniel B 4. Mär 2003 23:04


Richtige! ComPorts aus der Registry? holen.
 
Hallöchen,

mit folgendem Code fische ich mir alle ComPorts aus dem System und zeige sie zur Auswahl in einer CB an.
Delphi-Quellcode:
procedure TForm2.FormShow(Sender: TObject);
//ComPorts ermitteln und in ComboBox Anzeigen
var
  reg: TRegistry;
  sl: TStrings;
  i: integer;
  s: string;
begin
  ShowMessage('Bei Änderungen, kann gleich mit den neuen Werten weiter gearbeitet'
    + #13 + 'werden. Das Programm muss nicht neu gestartet werden!');
  reg := TRegistry.Create;
  reg.RootKey := HKEY_LOCAL_MACHINE;
  reg.OpenKey('hardware\devicemap\serialcomm', False);
  sl := TStringList.Create;
  reg.GetValueNames(sl);
  ComboBoxPort.Items.Clear;
  for i:=0 to sl.Count -1 do
    begin
      ComboBoxPort.Items.Add(reg.ReadString(sl.Strings[i]));
    end;
  sl.Free;
  reg.CloseKey;
  reg.free;

  ComboBoxPort.ItemIndex := StrToInt(AnsiLastChar(ComPortPort)) -1;
end;
So, nun zum Problem. Es werde so auch Virtuelle Modems angezeigt. Wie z.B. AVMISDN usw. Fritz besitzer wissen was ich meine.
Hier habe ich mir gedacht, machst mal eine Schleife mit den CB.Items.Count und löscht alle Einträge die vom Namen her nicht COM1 bis COM8 heissen.
Würde prinzipiell klappen. Nur, ich habe gerade festgestellt, das ich ein COM3 im System habe, das aber nur irgendwas Virtuelles ist. Blöderweise würde ich es in der Schleife nicht feststellen, also auch nicht löschen, nur das man damit nicht kommunizieren kann.
Ich hab dann im Geräte-Manager rein geschaut und festgestellt, das der COM3 gar nicht aufgelistet ist. Ist also wirklich was virtuelles/komisches.
Also, wie und woher krieg ich den jetzt die richtigen! ComPorts aus dem System?

Grüsse, Daniel :hi:

janjan 4. Mär 2003 23:29

Bei mir (Win XP) stehen die Comports auch unter:

HKEY_LOCAL_MACHINE
Hardware/Desription/System/MultiFunctionAdapter/5/SerialController

Vielleicht kannste damit was anfangen...

janjan 4. Mär 2003 23:31

und unter:

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root\ *PNP0501\

...und an ein paar anderen Stellen, such einfach mal nach Com1 oder so.

Daniel B 4. Mär 2003 23:36

Nee, das bringt mir alles nichts. Trotzdem Danke.

Grüsse, Daniel :hi:


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:54 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz