修改MAC地址方法

实现:VS2008(VC9)。还是直接上代码吧,相信都可以看得懂。

 1 void  CMACchangerDlg::OnBnClickedButton1()
 2 ExpandedBlockStart.gifContractedBlock.gif {
 3    HKEY hKey;
 4    LPCTSTR lpKeyPath = TEXT("SYSTEM\\CurrentControlSet\\Control\\Class\\{4D36E972-E325-11CE-BFC1-08002BE10318}\\0009");   //每个电脑各不相同,实际应用时记得修改。
 5    LPCTSTR pszOrigMac = TEXT("0019B95AD6D1");    //原始MAC地址
 6    LPCTSTR pszNewMac = TEXT("002036525621");     //修改的MAC地址
 7    SECURITY_ATTRIBUTES sa;
 8    sa.nLength = sizeof(sa);
 9    sa.lpSecurityDescriptor = NULL;
10    sa.bInheritHandle = TRUE;
11
12    long lOpenReturn = RegCreateKeyEx(HKEY_LOCAL_MACHINE,
13                                      lpKeyPath,
14                                      0, NULL,
15                                      REG_OPTION_NON_VOLATILE,
16                                      KEY_ALL_ACCESS,
17                                      &sa, &hKey, NULL);
18    if ( lOpenReturn != ERROR_SUCCESS)
19ExpandedSubBlockStart.gifContractedSubBlock.gif    {
20        MessageBox(TEXT("打开注册表失败,请以管理员身份运行!"), TEXT("错误"), MB_ICONWARNING);
21        RegCloseKey(hKey);
22        return;
23    }

24
25    if(MessageBox(TEXT("是否开始mac地址欺骗?"), TEXT("提示"), MB_ICONINFORMATION | MB_OKCANCEL) == IDOK)
26ExpandedSubBlockStart.gifContractedSubBlock.gif    {
27        if(RegSetValueEx(hKey, TEXT("NetworkAddress"), NULL, REG_SZ, (LPBYTE)pszNewMac, (DWORD) (lstrlen(pszNewMac)+1)*sizeof(TCHAR)))
28ExpandedSubBlockStart.gifContractedSubBlock.gif        {
29            RegCloseKey(hKey);
30            MessageBox(TEXT("无法修改注册表"), TEXT("错误"), MB_ICONWARNING);
31            return;
32        }

33        MessageBox(TEXT("修改MAC地址成功"), TEXT("提示"), MB_ICONINFORMATION);
34ExpandedSubBlockStart.gifContractedSubBlock.gif    }
else{
35        if(RegSetValueEx(hKey, TEXT("NetworkAddress"), NULL, REG_SZ, (LPBYTE)pszOrigMac, (DWORD) (lstrlen(pszOrigMac)+1)*sizeof(TCHAR)))
36ExpandedSubBlockStart.gifContractedSubBlock.gif        {
37            RegCloseKey(hKey);
38            MessageBox(TEXT("无法修改注册表"), TEXT("错误"), MB_ICONWARNING);
39            return;
40        }

41        MessageBox(TEXT("已还原MAC地址"), TEXT("提示"), MB_ICONINFORMATION);
42    }

43    
44    RegCloseKey(hKey);
45}

运行时因为权限问题必须使用admin权限。如果不够智能,可以利用DDK添加自动重启本地连接的功能。

posted on 2009-07-04 10:50  renzhacheng 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/renzhacheng/archive/2009/07/04/1516732.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值