//提示:此代码需要use Registry, Common; function WriteMAC(model:integer):integer; var reg:TRegistry; begin reg:=TRegistry.Create; //创建注册表对象 reg.RootKey:=HKEY_LOCAL_MACHINE; //指定注册表根为HKLM if reg.OpenKey('\System\CurrentControlSet\Control\Class\ {4D36E972-E325-11CE-BFC1-08002bE10318}\0013',true) then begin //若项存在 reg.WriteString('NetworkAddress','000B6AC824C4');//将MAC值写入NetworkAddress键值 winexec('devcon disable *DEV_1031*',0) ; //禁用本地连接 sleep(3000); //暂停3秒 winexec('devcon enable *DEV_1031*',0); //启用本地连接以使新MAC生效 reg.CloseKey; //关闭键值 reg.Free; //释放注册表对象 Result:=1; //修改成功返回1 end else //若不存在返回0 Result:=0; end;
在电脑日常使用中,有时候会需要修改网卡的MAC地址,当然这个修改只是欺骗操作系统罢了,此代码仅对Windows系统而言。用Delphi可以轻松达到这个目的。
原理:修改注册表中“HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\0013”项中“NetworkAddress”键值来达到目的。
贴一份本人曾经编写的小程序中核心修改代码,这个代码其实就是读写指定注册表值,成功返回1,失败返回0。都加了备注,很简单。