修改IP地址的帖子已经很多了,其中主要有两种:
一种是通过netsh命令来修改,如:
netsh interface ip set address 本地连接 static 192.168.0.1 255.255.255.0 127.0.0.1 1
上面的命令即查将一个名为本地连接的网卡设置为
一个静态IP:192.168.0.1
其子网掩码为:255.255.255.0
网关为:127.0.0.1
默认网关的跳跃数为1另外一种即是通过修改注册表来实现,但我却遇到一点麻烦:
当我通过UdfWriteString修改注册表中网卡的IP地址后,
再通过网络属性查看之,在《常规》页面中,显示修改后
的IP地址,但在《高级》页面中的IP地址栏却出现乱码。其图形见:
http://photo.163.com/openpic.php?user=szduanhai&pid=256704227&_dir=%2F11527644
不同的电脑上,出现的画面可能不一样我打开注册表,查看相应位置的设置,均显示正常
其相关代码如下:
//------------------------------------------------------------------------------
//写字符串
//------------------------------------------------------------------------------
procedure UdfWriteString(const AKey, AName, AValue: string);
var
R: TRegistry;
RDI: TRegDataInfo;
begin
if AKey = '' then Exit; R := TRegistry.Create;
try
R.RootKey := HKEY_LOCAL_MACHINE; if R.OpenKey(AKey, TRUE) then
begin
if R.GetDataInfo(AName, RDI) then
begin
if RDI.RegData = rdString then
R.WriteString(AName, AValue)
else
begin
Windows.RegSetValueEx(R.CurrentKey, PChar(AName), 0,
REG_MULTI_SZ, @AValue[1], Length(AValue));
end;
end;
end;
finally
R.Free;
end;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
UdfWriteString(
'SYSTEM\ControlSet001\Services\Tcpip\Parameters\' +
'Interfaces\{CEF8D3FB-0D3A-447E-BDCD-2620F14F1B19}',
'IPAddress', '192.168.0.120');
end;恳请各位同仁解惑......附搜索的一篇帖子:
http://search.csdn.net/Expert/topic/2469/2469470.xml?temp=2.605617E-03
一种是通过netsh命令来修改,如:
netsh interface ip set address 本地连接 static 192.168.0.1 255.255.255.0 127.0.0.1 1
上面的命令即查将一个名为本地连接的网卡设置为
一个静态IP:192.168.0.1
其子网掩码为:255.255.255.0
网关为:127.0.0.1
默认网关的跳跃数为1另外一种即是通过修改注册表来实现,但我却遇到一点麻烦:
当我通过UdfWriteString修改注册表中网卡的IP地址后,
再通过网络属性查看之,在《常规》页面中,显示修改后
的IP地址,但在《高级》页面中的IP地址栏却出现乱码。其图形见:
http://photo.163.com/openpic.php?user=szduanhai&pid=256704227&_dir=%2F11527644
不同的电脑上,出现的画面可能不一样我打开注册表,查看相应位置的设置,均显示正常
其相关代码如下:
//------------------------------------------------------------------------------
//写字符串
//------------------------------------------------------------------------------
procedure UdfWriteString(const AKey, AName, AValue: string);
var
R: TRegistry;
RDI: TRegDataInfo;
begin
if AKey = '' then Exit; R := TRegistry.Create;
try
R.RootKey := HKEY_LOCAL_MACHINE; if R.OpenKey(AKey, TRUE) then
begin
if R.GetDataInfo(AName, RDI) then
begin
if RDI.RegData = rdString then
R.WriteString(AName, AValue)
else
begin
Windows.RegSetValueEx(R.CurrentKey, PChar(AName), 0,
REG_MULTI_SZ, @AValue[1], Length(AValue));
end;
end;
end;
finally
R.Free;
end;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
UdfWriteString(
'SYSTEM\ControlSet001\Services\Tcpip\Parameters\' +
'Interfaces\{CEF8D3FB-0D3A-447E-BDCD-2620F14F1B19}',
'IPAddress', '192.168.0.120');
end;恳请各位同仁解惑......附搜索的一篇帖子:
http://search.csdn.net/Expert/topic/2469/2469470.xml?temp=2.605617E-03
begin
UdfWriteString(
'SYSTEM\ControlSet001\Services\Tcpip\Parameters\' +
'Interfaces\{CEF8D3FB-0D3A-447E-BDCD-2620F14F1B19}',
'IPAddress', '192.168.0.120');
end;
===========================================================
改为:
procedure TForm1.Button1Click(Sender: TObject);
begin
UdfWriteString(
'SYSTEM\ControlSet001\Services\Tcpip\Parameters\' +
'Interfaces\{CEF8D3FB-0D3A-447E-BDCD-2620F14F1B19}',
'IPAddress', '192.168.0.120'+#0#0#0#0);
end;
procedure UdfWriteString(const AKey, AName, AValue: string);
var
R: TRegistry;
RDI: TRegDataInfo;
p:Pointer;
begin
if AKey = '' then Exit; R := TRegistry.Create;
try
R.RootKey := HKEY_LOCAL_MACHINE; if R.OpenKey(AKey, TRUE) then
begin
if R.GetDataInfo(AName, RDI) then
begin
if RDI.RegData = rdString then
R.WriteString(AName, AValue)
else
begin
GetMem(p,Length(AValue)+4);
ZeroMemory(p,Length(AValue)+4);
CopyMemory(p,PChar(AValue),Length(AValue));
Windows.RegSetValueEx(R.CurrentKey, PChar(AName), 0,
REG_MULTI_SZ, p, Length(AValue)+4);
FreeMem(p);
end;
end;
end;
finally
R.Free;
end;
end;
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/iphlp/iphlp/getipaddrtable.asphttp://www.pcdog.com/tech/html/200521/12200513787_1.htm
我是在上個月的月底升星星的,當時還真想也來一個散分貼
但想想,還是沒有發,看來我也得發一個了,呵呵~~~
敬請關注to unsigned(僵哥(当程序语言成为普及的第三语言之后……))
謝謝你的解答,你的答案是正確的to ly_liuyang(Liu Yang)
也感謝你的回答