用Delphi进行开发的,直接修改注册表,需重启电脑后才生效
procedure TForm1.SpeedButton3Click(Sender: TObject);
var
reg:TRegistry;
IP,WG,ZY:array [0..255] of char;
ID,CardNum:string;
Psize:Dword;
DNS:string;
begin
reg:=TRegistry.Create;
name:='';
reg.RootKey:=HKEY_LOCAL_MACHINE;
ID:=RGcardList.Items.Strings[RGCardList.itemindex];
cardNum:=copy(ID,pos(';',ID)+1,length(ID));
reg.CloseKey;
if length(CardNum) < 2 then
CardNum:='00'+CardNum;
if LengTh(CardNum) < 3 then
CardNum:='0'+CardNum;
reg.OpenKey('SYSTEM\ControlSet'+CardNum+'\Services',false);
reg.OpenKey('Tcpip\Parameters\Interfaces',false);
ID:=CardIdLt.Strings[CardIDLt.IndexOf(ID)+1];
reg.OpenKey(id,false);
DNS:=Reg.ReadString('NameServer');
RegqueryValueEx(reg.CurrentKey,'IPAddress',nil,nil,@IP,@Psize);
Edit1.Text:=copy(IP,0,strlen(IP));
RegqueryValueEx(reg.CurrentKey,'SubnetMask',nil,nil,@ZY,@Psize);
Edit2.Text:=copy(ZY,0,strlen(ZY));
RegqueryValueEx(reg.CurrentKey,'DefaultGateway',nil,nil,@WG,@Psize);
Edit3.Text:=copy(WG,0,strlen(WG));
RegqueryValueEx(reg.CurrentKey,'SubnetMask',nil,nil,@ZY,@Psize);
Edit2.Text:=copy(ZY,0,strlen(ZY));
RegqueryValueEx(reg.CurrentKey,'IPAddress',nil,nil,@ZY,@Psize);
Edit1.Text:=copy(ZY,0,strlen(ZY));
Reg.CloseKey;
reg.Free;
if pos(',',DNS)<=0 then begin Edit4.Text:=DNS; end;
if pos(',',DNS)>0 then
begin
Edit4.Text:=Copy(DNS,0,Pos(',',DNS)-1);
Edit5.Text:=Copy(DNS,Pos(',',DNS)+1,Length(DNS));
end;
end;
读取IP
procedure TForm1.setIPAddr;
var
reg:TRegistry;
name:array [0..255] of char;
DNS,ID,CardNum:string;
begin
reg:=TRegistry.Create;
StrLcopy(name,pchar(Edit6.Text),length(Edit6.Text));
reg.RootKey:=HKEY_LOCAL_MACHINE;
ID:=RGcardList.Items.Strings[RGCardList.itemindex];
cardNum:=copy(ID,pos(';',ID)+1,length(ID));
reg.CloseKey;
if length(CardNum) < 2 then
CardNum:='00'+CardNum;
if LengTh(CardNum) < 3 then
CardNum:='0'+CardNum;
reg.OpenKey('SYSTEM\ControlSet'+CardNum+'\Services',false);
reg.OpenKey('Tcpip\Parameters\Interfaces',false);
ID:=CardIdLt.Strings[CardIDLt.IndexOf(ID)+1];
reg.OpenKey(id,false);
RegSetValueEx(reg.CurrentKey,'IPAddress',0,REG_MULTI_SZ,@name,13);
StrLcopy(name,pchar(Edit7.Text),length(Edit7.Text));
reg.RootKey:=HKEY_LOCAL_MACHINE;
ID:=RGcardList.Items.Strings[RGCardList.itemindex];
cardNum:=copy(ID,pos(';',ID)+1,length(ID));
reg.CloseKey;
if length(CardNum) < 2 then
CardNum:='00'+CardNum;
if LengTh(CardNum) < 3 then
CardNum:='0'+CardNum;
reg.OpenKey('SYSTEM\ControlSet'+CardNum+'\Services',false);
reg.OpenKey('Tcpip\Parameters\Interfaces',false);
ID:=CardIdLt.Strings[CardIDLt.IndexOf(ID)+1];
reg.OpenKey(id,false);
RegSetValueEx(reg.CurrentKey,'SubnetMask',0,REG_MULTI_SZ,@name,13);
StrLcopy(name,pchar(Edit8.Text),length(Edit8.Text));
reg.RootKey:=HKEY_LOCAL_MACHINE;
ID:=RGcardList.Items.Strings[RGCardList.itemindex];
cardNum:=copy(ID,pos(';',ID)+1,length(ID));
reg.CloseKey;
if length(CardNum) < 2 then
CardNum:='00'+CardNum;
if LengTh(CardNum) < 3 then
CardNum:='0'+CardNum;
reg.OpenKey('SYSTEM\ControlSet'+CardNum+'\Services',false);
reg.OpenKey('Tcpip\Parameters\Interfaces',false);
ID:=CardIdLt.Strings[CardIDLt.IndexOf(ID)+1];
reg.OpenKey(id,false);
RegSetValueEx(reg.CurrentKey,'DefaultGateway',0,REG_MULTI_SZ,@name,13);
IF (Trim(Edit9.Text)='') And (Trim(Edit10.Text)='') Then Exit;
IF (TRim(Edit9.Text)<>'') And (Trim(Edit10.Text)<>'') then
begin
DNS:=Trim(Edit9.Text)+','+TRim(Edit10.Text);
end;
IF (Trim(Edit9.Text)<>'') And (Trim(Edit10.Text)='') then
begin
DNS:=Trim(Edit9.Text);
end;
IF (Trim(Edit9.Text)='') And (Trim(Edit10.Text)<>'') then
begin
DNS:=Trim(Edit10.Text);
end;
StrLcopy(name,pchar(DNS),length(DNS));
reg.RootKey:=HKEY_LOCAL_MACHINE;
ID:=RGcardList.Items.Strings[RGCardList.itemindex];
cardNum:=copy(ID,pos(';',ID)+1,length(ID));
reg.CloseKey;
if length(CardNum) < 2 then
CardNum:='00'+CardNum;
if LengTh(CardNum) < 3 then
CardNum:='0'+CardNum;
reg.OpenKey('SYSTEM\ControlSet'+CardNum+'\Services',false);
reg.OpenKey('Tcpip\Parameters\Interfaces',false);
ID:=CardIdLt.Strings[CardIDLt.IndexOf(ID)+1];
reg.OpenKey(id,false);
// RegSetValueEx(reg.CurrentKey,'NameServer',0,REG_MULTI_SZ,@name,13);
reg.WriteString('NameServer',DNS);
Reg.CloseKey;
reg.Free;
end;
设置IP
使用中还有一些问题,待完善