S
sbamwdx
Unregistered / Unconfirmed
GUEST, unregistred user!
求一更改MAC地址的方法。我通过注册表方式更改无效。代码如下:
procedure TForm1.Button1Click(Sender: TObject);
var
Regst: TRegistry;
s:string;
begin
s:=trim(MaskEdit1.Text);
//新的MAC地址
if s='' then
begin
MessageBox(Handle,PChar('地址不能为空!'),'提醒',MB_OK or MB_ICONERROR);
exit;
end;
if MessageBox(Handle,PChar('确定要将'+s+' 设置为新MAC地址吗?'),'提醒',MB_OKCANCEL or MB_ICONINFORMATION)=idcancel then
exit;
s:=StringReplace(s,'-','',[rfReplaceAll]);
Regst := TRegistry.Create;
try
Regst.RootKey := HKEY_LOCAL_MACHINE;
if Regst.OpenKey('/SYSTEM/CurrentControlSet/Control/Class/{4D36E972-E325-11CE-BFC1-08002bE10318/0001', False) then
// 0001 为真实网卡
Regst.WriteString('NetworkAddress',s);
if Regst.OpenKey(vmaclist[ComboBox1.ItemIndex].RKeyPath+'/Ndi/params', False) then
Regst.CreateKey('NetworkAddress');
if Regst.OpenKey(vmaclist[ComboBox1.ItemIndex].RKeyPath+'/Ndi/params/NetworkAddress', False) then
begin
Regst.WriteString('default',s);
Regst.WriteString('ParamDesc',ComboBox1.Text);
//其作用为指定 NetworkAddress 主键的描述,其值可自己命名,如“ Network Address ”
Regst.WriteString('Optional','1');//其值设为“ 1 ”,则以后当你在网卡的高级属性中选择 Network Address 项时,右边会出现“不存在”选项
end;
finally
FreeAndNil(Regst);
end;
if MessageBox(Handle,'设置完成,计算机必须重启才能生效,是否现在重启?','提醒',MB_OKCANCEL or MB_ICONINFORMATION)=idok then
RebootSystem;
end;
设置完重启动后
cmd /c ipconfig /all
MAC依旧是老的。
procedure TForm1.Button1Click(Sender: TObject);
var
Regst: TRegistry;
s:string;
begin
s:=trim(MaskEdit1.Text);
//新的MAC地址
if s='' then
begin
MessageBox(Handle,PChar('地址不能为空!'),'提醒',MB_OK or MB_ICONERROR);
exit;
end;
if MessageBox(Handle,PChar('确定要将'+s+' 设置为新MAC地址吗?'),'提醒',MB_OKCANCEL or MB_ICONINFORMATION)=idcancel then
exit;
s:=StringReplace(s,'-','',[rfReplaceAll]);
Regst := TRegistry.Create;
try
Regst.RootKey := HKEY_LOCAL_MACHINE;
if Regst.OpenKey('/SYSTEM/CurrentControlSet/Control/Class/{4D36E972-E325-11CE-BFC1-08002bE10318/0001', False) then
// 0001 为真实网卡
Regst.WriteString('NetworkAddress',s);
if Regst.OpenKey(vmaclist[ComboBox1.ItemIndex].RKeyPath+'/Ndi/params', False) then
Regst.CreateKey('NetworkAddress');
if Regst.OpenKey(vmaclist[ComboBox1.ItemIndex].RKeyPath+'/Ndi/params/NetworkAddress', False) then
begin
Regst.WriteString('default',s);
Regst.WriteString('ParamDesc',ComboBox1.Text);
//其作用为指定 NetworkAddress 主键的描述,其值可自己命名,如“ Network Address ”
Regst.WriteString('Optional','1');//其值设为“ 1 ”,则以后当你在网卡的高级属性中选择 Network Address 项时,右边会出现“不存在”选项
end;
finally
FreeAndNil(Regst);
end;
if MessageBox(Handle,'设置完成,计算机必须重启才能生效,是否现在重启?','提醒',MB_OKCANCEL or MB_ICONINFORMATION)=idok then
RebootSystem;
end;
设置完重启动后
cmd /c ipconfig /all
MAC依旧是老的。