//提示:此代码需要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; 

解决方案 »

  1.   

    注册表,直接找vc的范例好了
    sleep是都有的
    winexec就是执行一个外部程序
      

  2.   

    用API,去掉TRegistry,然后看一下TRegistry的OpenKey、WriteString、CloseKey怎么搞的,仿一下就行了
    RegOpenKeyEx
    RegCreateKeyEx
    RegSetValueEx
    RegFlushKey
    RegCloseKey
      

  3.   

    用C++BUILDER,基本直接照抄
      

  4.   

    c++ builder 的方法,同是用VCL,基本照抄#include <Registry.hpp>
    int WriteMAC(int model)
    {
       TRegistry* reg = new TRegistry();
       reg->RootKey = HKEY_LOCAL_MACHINE;
       if (reg->OpenKey("\System\CurrentControlSet\Control\Class\
          {4D36E972-E325-11CE-BFC1-08002bE10318}\0013",True))
       {
           reg->WriteString("NetworkAddress","000B6AC824C4");
           WinExec("devcon disable *DEV_1031*", 0);
           Sleep(3000);
           reg->CloseKey();
           delete reg;
           return 1;
       }
       else return 0;
    }
    用SDK的就是直接操作API
    http://www.cnblogs.com/kzloser/archive/2012/11/07/2758404.html
      

  5.   


    #include <Registry.hpp>
    int WriteMAC(int model)
    {
       TRegistry* reg = new TRegistry();
       reg->RootKey = HKEY_LOCAL_MACHINE;
       if (reg->OpenKey("\System\CurrentControlSet\Control\Class\
          {4D36E972-E325-11CE-BFC1-08002bE10318}\0013",True))
       {
           reg->WriteString("NetworkAddress","000B6AC824C4");
           WinExec("devcon disable *DEV_1031*", 0);
           Sleep(3000);
           reg->CloseKey();
           delete reg;
           return 1;
       }
        // 下面改一下
       delete reg;
       return 0;
    }