Einzelnen Beitrag anzeigen

Daniel B
(Gast)

n/a Beiträge
 
#1

Wie erhalte ich alle verfügbaren ComPorts aus der Registry?

  Alt 16. Aug 2002, 10:07
uses ... Registry, ...;
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
//ComPorts ermitteln und in ComboBox anzeigen
var
  i: Integer;
  reg: TRegistry;
  sl: TStrings;
begin
  reg := TRegistry.Create;
  try
    reg.RootKey := HKEY_LOCAL_MACHINE;
    reg.OpenKeyReadOnly('hardware\devicemap\serialcomm');
    sl := TStringList.Create;
    try
      reg.GetValueNames(sl);
      ComboBox1.Items.Clear;
      for i := 0 to sl.Count - 1 do
      begin
        ComboBox1.Items.Add(reg.ReadString(sl.Strings[i]));
      end;
    finally
      sl.Free;
    end;
    reg.CloseKey;
  finally
    reg.Free;
  end;
// ComboBox1.ItemIndex := StrToInt(AnsiLastChar(Variable)) -1;
end;
Bei Variable könnte man eine Globale Stringvariable nehmen. Wenn man z.B. bei Programmstart den ComPort5 aus einer INI ausliest und dann geht man in die Einstellungen, so wird durch die Kommentierte Zeile der aktuelle ComPort in der ComboBox angezeigt. Ansonsten die ganze Zeile einfach weglassen.

Geändert von toms (28. Nov 2010 um 09:19 Uhr) Grund: Try..Finally hinzugefügt
  Mit Zitat antworten Zitat