Einzelnen Beitrag anzeigen

Quake

Registriert seit: 25. Aug 2003
222 Beiträge
 
Delphi 7 Enterprise
 
#11

AW: COM-Schnittstelle: Gerätenamen ermitteln

  Alt 25. Aug 2011, 09:44
Der Thread ist zwar schon etwas älter aber ich habe mal etwas zusammen gebastelt was evtl. interessant sein könnte. Der Code soll nur als Anregung dienen. Ich konnte ihn noch nicht auf verschiedenen PCs testen. Unter Win98 uns alte Konsorten läuft er bestimmt nicht. Kommentare habe ich auch nicht verwendet aber ich denke der Code ist weitestgehend selbsterklärend.

Delphi-Quellcode:
var
  i: integer;
  Reg: TRegistry;
  SerPortNum: integer;
  EnumList: TStringList;
  FriendlyName: String;
  PortName: String;
begin
  Reg := TRegistry.Create();
  EnumList := TStringlist.Create;
  try
    Reg.RootKey := HKEY_LOCAL_MACHINE;
    if Reg.OpenKeyReadOnly('\System\CurrentControlSet\Services\SerEnum\Enum') then
    begin
      SerPortNum := Reg.ReadInteger('Count');
      Memo1.Lines.Add('Anzahl der Schnittstellen : '+inttostr(SerPortNum));
      for i:=0 to SerPortNum-1 do
        EnumList.Add(Reg.ReadString(inttostr(i)));
      Reg.CloseKey;
      for i:=0 to SerPortNum-1 do
      begin
        if Reg.OpenKeyReadOnly('\System\CurrentControlSet\Enum\'+EnumList.Strings[i]+'\Device Parameters') then
          PortName := Reg.ReadString('PortName');
        Reg.CloseKey;
        if Reg.OpenKeyReadOnly('\System\CurrentControlSet\Enum\'+EnumList.Strings[i]) then
          FriendlyName := Reg.ReadString('FriendlyName');
        Reg.CloseKey;
        Memo1.Lines.Add(PortName + ' : ' + FriendlyName);
      end;

    end;
  finally
    EnumList.Free;
    Reg.Free;
  end;
end;
  Mit Zitat antworten Zitat