您好,请问如何用程序更改 IP ,Mask,NetGate,DNS ? 谢谢(100分)

  • 主题发起人 驿路的梦
  • 开始时间
用NETSH做个批处理不是解决了
 
procedure SetTCPIPDNSAddresses( sIPs : string );
begin

// WINDOWS NT
SaveStringToRegistry_LOCAL_MACHINE(
'SYSTEM/CurrentControlSet' +
'/Services/Tcpip/Parameters',
'NameServer',
sIPs );

//if using Windows 95
SaveStringToRegistry_LOCAL_MACHINE(
'SYSTEM/CurrentControlSet' +
'/Services/VxD/MSTCP',
'NameServer',
sIPs );
end;

2. 其中 SaveStringToRegistry_LOCAL_MACHINE 定义:
uses Registry;

procedure SaveStringToRegistry_LOCAL_MACHINE(
sKey, sItem, sVal : string );
var
reg : TRegIniFile;
begin

reg := TRegIniFile.Create( '' );
reg.RootKey := HKEY_LOCAL_MACHINE;
reg.WriteString( sKey, sItem, sVal + #0 );
reg.Free;
end;
 
驿路的梦 win9x下其实也不用重启,如果是手工改,那么你改完后,在系统的设备管理器中把网卡禁用,再启用
如果编程中想修改,那你用一个API函数好像是什么系统资源更改后windows会调用的,你查查api书,一般VB的API大书上有,我就是那里看来的,只是一眼过后,就忘了,
注意,这个API 微软没有公开,所以只有大一点的书上有,其它小人书上是很难找到的,一定要讲API的大书
 
还有,忘了说
pcmagic的方法不推荐使用,有专门的API改IP,DNS的,上面的方法不是不能用,而是不科学
 
HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/Class/NetTrans/00x
下面改过以后禁用网卡再启用就好了啊,不行的话重新启动啊(98下手动修改系统都提示你重新启动...)
 
顶部