Delphi - объектно-ориентированный язык программирования, разработанный компанией Borland в 1995 году. Он основан на языке программирования Pascal, но имеет более расширенные возможности и добавлены новые функции.
Delphi является интегрированной средой разработки (IDE), которая позволяет разрабатывать программное обеспечение для различных платформ, включая Windows, macOS, Android и iOS. Delphi достигает многоплатформенности с помощью...
{for NT4 and Windows 2000, and you must have Admin privileges} {fьr NT4 und Windows 2000, und Adminrechte erforderlich} usesRegistry; const
nString = 'SOFTWAREMICROSOFTWINDOWS NTCURRENTVERSIONNetworkCards'; nEthernet = 'Ethernet'; nEtherjet = 'Etherjet'; {if Hardware IBM PL300 with Chip 10/100} nTcpIp1 = 'SYSTEMCurrentControlSetServices'; nTcpIp2 = 'ParametersTcpip'; var
reg: TRegistry; buffer1, buffer2, buffer3: array
[1..32] of
Char; i: Integer; ipaddress, subnetmask, DefaultGateway: string
; Adapter, Adapter_Key: string
; stringlist: TStrings; 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
; Reg := TRegistry.Create; try
Reg.RootKey := HKEY_LOCAL_MACHINE; Reg.OpenKey(adapter, False); Reg.ReadBinaryData('SubnetMask', buffer2, BufSize); finally
Reg.CloseKey; Reg.Free; end
; Reg := TRegistry.Create; try
Reg.RootKey := HKEY_LOCAL_MACHINE; Reg.OpenKey(adapter, False); Reg.ReadBinaryData('DefaultGateway', buffer3, BufSize); finally
Reg.CloseKey; Reg.Free; end
; end
; end
; procedure
TForm1.Button1Click(Sender: TObject); begin
Memo1.Clear; search_for_adapter_NT; Memo1.Lines.Add(buffer1); Memo1.Lines.Add(buffer2); Memo1.Lines.Add(buffer3); end
;