编程对注册表操作DNS有效,IP,子网关就无效的 ( 积分: 50 )

  • 主题发起人 aabb_1980
  • 开始时间
A

aabb_1980

Unregistered / Unconfirmed
GUEST, unregistred user!
各位朋友,小弟的代码如下,小弟自己测试过,键值的位置肯定是没有错的,但为什么实际操作时,只有DNS的地址起变化,而其它IP、子网、和网关就会无效的呢?请各位朋友赐教,谢谢!!!
procedure TForm1.FormCreate(Sender: TObject);
var
ini: TIniFile;
ip, mask, gateway, dns: string;
begin
ini := Tinifile.Create(ExtractFilePath(ParamStr(0)) + 'login.txt');
ip := ini.ReadString('login', 'ip', '');
mask := ini.ReadString('login', 'mask', '');
gateway := ini.ReadString('login', 'gateway', '');
dns := ini.ReadString('login', 'dns', '');
Write_Reg('IPAddress', ip);
Write_Reg('SubnetMask', mask);
Write_Reg('DefaultGateway', gateway);
Write_Reg('NameServer', dns);
ini.Free;
Application.Terminate;


end;

procedure TForm1.Write_Reg(Net_Str, Value_Str: string);
var
myreg: TRegistry; //注册表
begin
myreg := TRegistry.Create;
with myreg do
begin
RootKey := HKEY_LOCAL_MACHINE;
if OpenKey('SYSTEM/ControlSet001/Services/Tcpip/Parameters/Interfaces/{1AB26ADD-A307-4BE6-820D-1D99C76CBDB5}', True) and ValueExists(Net_Str) then
begin
WriteString(Net_Str, Value_Str);
myreg.CloseKey;
myreg.Free;
end
else
begin
ShowMessage('找不到该键值,请检查注册表里面是否有该键值!');
Abort;
end;
end;

end;
 
改IP可以用命令行
netsh搞定
 
呵呵~~~不行,再顶一顶!
 
大富翁们,来吧,顶一顶吧,呵呵~~~
 
前两天刚刚我也写了一个,的确是不行,注册表示改了,可是从网络设置里看,IP没有变化,但是从网络里面设置,注册表是会变得,不知道为什么!!
欢迎来我的blog,我们可以讨论下!
hi.baidu.com/zhaokaien
这是我写的一个读取REG_MULTI_SZ类型数据的函数!
http://hi.baidu.com/zhaokaien/blog/item/d892a625c4f4e96235a80f50.html
 
问题未解决,再顶!
希望有高手可以帮忙解决这个难题,呵呵~~~
 
顶部