function search_adapter_key: string; var astring, description, st: string;
nPos: integer;
ServiceName: string; begin reg := TRegistry.Create;
stringlist := TStringList.Create;
reg.RootKey := HKEY_LOCAL_MACHINE;
reg.OpenKey(nString, False);
reg.GetKeyNames(stringlist); {search all subkeys
such alle unterschlüssel} reg.CloseKey;
for i := 0 to (stringlist.Count - 1) do
begin st := stringlist[i];
aString := nString + '\' + st;
reg := TRegistry.Create;
reg.RootKey := HKEY_LOCAL_MACHINE;
reg.OpenKey(aString, False);
description := reg.ReadString('Description');
nPos:= AnsiPos(nEthernet, description); {search description for string Ethernet
Beschreibung nach dem string Ethernet absuchen} if nPos > 0 then
begin ServiceName := reg.ReadString('ServiceName');
Adapter_Key := nTcpIp1 + ServiceName + nTcpIp2; end;
nPos := AnsiPos(nEtherjet, description); {search description for string 'Etherjet
if IBM PL300 with MotherboardChip} if nPos > 0 then
begin ServiceName := reg.ReadString('ServiceName');
Adapter_Key := nTcpIp1 + ServiceName + nTcpIp2; end;
reg.CloseKey; end;
Result := Adapter_Key; end;
procedure search_for_adapter_NT; var BufSize: Integer; {Bufsize requested but not used
Bufsize erforderlich aber nicht benutzt} begin adapter := search_adapter_key; if adapter <> '' then
begin Reg := TRegistry.Create; try Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKey(adapter, False);
Reg.ReadBinaryData('IpAddress', buffer1, BufSize); finally Reg.CloseKey;
Reg.Free; end;