//提示:此代碼需要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;
uj5u.com熱心網友回復:
注冊表,直接找vc的范例好了sleep是都有的
winexec就是執行一個外部程式
uj5u.com熱心網友回復:
用API,去掉TRegistry,然后看一下TRegistry的OpenKey、WriteString、CloseKey怎么搞的,仿一下就行了RegOpenKeyEx
RegCreateKeyEx
RegSetValueEx
RegFlushKey
RegCloseKey
uj5u.com熱心網友回復:
用C++BUILDER,基本直接照抄uj5u.com熱心網友回復:
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
uj5u.com熱心網友回復:
#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;
}
uj5u.com熱心網友回復:
4樓+1轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/111658.html
標籤:語言基礎/算法/系統設計
下一篇:獲得存盤程序引數型別問題
