Einzelnen Beitrag anzeigen

Benutzerbild von Kara
Kara

Registriert seit: 2. Aug 2005
113 Beiträge
 
#3

Re: fest eingestellte IP-Adressen mittels Programm ändern

  Alt 17. Aug 2005, 09:11
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. ---
  Mit Zitat antworten Zitat