Ah, ja, das hilft mir weiter. Danke!
Das wird aber ein ganzes Stück Arbeit, das unter zu bringen.
Ich habe festgestellt, dass mein Vorgänger die
IP-Adresse in die Registry schreibt. Dort ändern sich die IPs auch. Hilft das denn was?
"set address..." oder netsh hab ich nirgends gefunden.
Mit fehlt etwas das Verständnis dafür, dass er das gemacht hat.
Das Programm war ursprünglich für Win NT gedacht und wird jetzt unter XP genutzt. Aber das sollte eigentlicht nicht ausschlaggebend sein, oder?
Delphi-Quellcode:
procedure TFormMain.registryEintrag;
var
regist:TRegistry;
Schluessel:
String;
Schluessel1:
String;
Schluessel2:
String;
i:integer;
ip:
string;
x:integer;
card:
string;
begin
if IP_CRS <>'
'
then
begin
regist:=TRegistry.Create;
try
card:=wertAusRegistryHolen('
ServiceName','
SOFTWARE\MICROSOFT\WINDOWS NT\CurrentVersion\NetworkCards\1');
regist.rootkey:=HKEY_LOCAL_MACHINE;
Schluessel1:='
SYSTEM\CurrentControlSet\Services';
Schluessel2:='
\Parameters\Tcpip';
Schluessel:=Schluessel1 + '
\' + card + Schluessel2;
if not regist.KeyExists(Schluessel)
then
begin
Schluessel:=Schluessel1 + '
\N1001' + Schluessel2;
if not regist.KeyExists(Schluessel)
then
begin
Schluessel:=Schluessel1 + '
\E100B' + Schluessel2;
if not regist.KeyExists(Schluessel)
then
begin
Schluessel:=Schluessel1 + '
\E100B1' + Schluessel2;
if not regist.KeyExists(Schluessel)
then
begin
Schluessel:=Schluessel1 + '
\Elnk31' + Schluessel2;
if not regist.KeyExists(Schluessel)
then
begin
Schluessel:=Schluessel1 + '
\Elnk32' + Schluessel2;
if not regist.KeyExists(Schluessel)
then
begin
Showmessage('
Achtung Fehlender Schlüssel in Registry!');
exit;
end;
end;
end;
end;
end;
end;
wertInRegistryEintragen(IP_CRS,Schluessel,'
IPAddress',REG_MULTI_SZ);
wertInRegistryEintragen('
255.255.255.' + Subnet_CRS,Schluessel,'
SubnetMask',REG_MULTI_SZ);
ip:='
';
x:=0;
for i := 1
to length(IP_CRS)
do
begin
if copy(IP_CRS,i,1)[1]='
.'
then
inc(x);
if x < 3
then
ip:=
ip+copy(IP_CRS,i,1)[1];
end;
ip:=
ip + '
.' + Gateway_CRS;
wertInRegistryEintragen(
ip,Schluessel,'
DefaultGateway',REG_MULTI_SZ);
finally
regist.free;
end;
end;
end;
Vielleicht hilft das eher? Ich blick nicht durch, was da eigentlich abläuft
--- yesterday is gone, tomorrow has not yet come, we have only today. let us begin. ---