Hier habe ich etwas gefunden, was gut funktioniert (auch ohne diesen JWA-...!)
http://www.delphipraxis.net/1119476-post11.html
Ausgabe:
Anzahl der Schnittstellen : 1
COM7 : USB Serial Port (COM7)
Delphi-Quellcode:
procedure TForm2.Button4Click(Sender: TObject); // uses Registry
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;