Einzelnen Beitrag anzeigen

Daniel B
(Gast)

n/a Beiträge
 
#1

Richtige! ComPorts aus der Registry? holen.

  Alt 4. Mär 2003, 22:04
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
  Mit Zitat antworten Zitat