200分求助!!如何通过程序更改2000系统的网关。(200分)

  • 主题发起人 主题发起人 fishgg
  • 开始时间 开始时间
F

fishgg

Unregistered / Unconfirmed
GUEST, unregistred user!
局域网内部要通过几个不同的代理上网,请问如何通过程序自动修改网关地址,并且立即生效!!!
 
兄弟,98下改改注册表就OK了,2000下好像行不通,帮你找找
 
非常感谢!!!,我就是要在2000下的方法,因为2000改了不用重起,可以立即生效
等你的回音
 
我也想知道,哎,还是unix好,改一下/etc/conf.d/net文件就搞定,KAO
 
procedure TForm1.GetInfo;
const
RotKey:String='System/CurrentControlSet/Control/Class/{4d36e972-e325-11ce-bfc1-08002be10318}';
var
MyReg:TRegistry;
StrKeyName:TStringList;
StrTemp1,StrTemp2,StrTemp3:string;
i:integer;
begin
ComboBox1.Clear;
ComboBox2.Clear;
// 这里的代码适合WINDOWS2000,
//对于NT需要读取HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/NetworkCards
MyReg:=TRegistry.Create;
StrKeyName:=TStringList.Create;
MyReg.RootKey:=HKEY_LOCAL_MACHINE;
MyReg.OpenKey(RotKey,False);
MyReg.GetKeyNames(StrKeyName);
for i:=0 to StrKeyName.Count-1 do
begin //DriverDesc
StrTemp1:=RotKey+'/'+StrKeyName.Strings+'/Ndi/Interfaces';// "ethernet" 判断是不是以太网卡
MyReg.CloseKey;
MyReg.OpenKey(StrTemp1,False);
StrTemp2:=MyReg.ReadString('LowerRange');
if StrTemp2='ethernet' then//判断是不是以太网卡
begin
StrTemp1:=RotKey+'/'+StrKeyName;
MyReg.CloseKey;
MyReg.OpenKey(StrTemp1,False);
StrTemp2:=MyReg.ReadString('DriverDesc');
ComboBox1.Items.Add(StrTemp2);
StrTemp3:=MyReg.ReadString('NetCfgInstanceId');
ComboBox2.Items.Add(StrTemp3);
//Showmessage(StrTemp2+#13+StrTemp3);
end;
end;
StrKeyName.Free;
MyReg.Free;
ComboBox1.ItemIndex:=0;
ComboBox2.ItemIndex:=0;
ComboBox1.OnChange(self);
ComboBox2.OnChange(self);
end;
 
上面是读取注册表的
然后根据你的需要修改注册表即可
注意:你只对了一半
修改注册表也是需要重新启动才能生效的.除非....
呵呵
修改后需要调用'dhcpcsvc.dll的DHCPNOTIFYPROC才立刻生效的.
type
DHCPNOTIFYPROC=function(a:LPWSTR;b: LPWSTR;C: BOOL;D: DWORD;E: DWORD;F: DWORD;G: integer):integer;Stdcall;
var
 
jingtao 老大,你解释的的确很牛,但是抱歉,我很菜,可以详细点吗!!!!????
我看了上面的发现看不懂!!!尤其是dll的调用,请你发个全点的代码!!!
拜托,谢了!!
 
后退
顶部