function LanCardID: string; //获取网卡物理地址 var guid: TGUID; i: integer; begin result := '; CoCreateGUID(guid); for i := Low(guid.D4)+2 to High(guid.D4) do begin result := result + IntToHex(guid.D4[i],2); end; end;
网卡的MAC
//加入nb30.pas单元
var LanaNum: Byte; MACAddress: PMACAddress; RetCode: Byte; begin LanaNum := StrToInt(ComboBox1.Text); New(MACAddress); try RetCode := GetMACAddress(LanaNum, MACAddress); if RetCode = NRC_GOODRET then begin Edit1.Text := Format('%2.2x-%2.2x-%2.2x-%2.2x-%2.2x-%.2x', MACAddress[0], MACAddress[1], MACAddress[2], MACAddress[3], MACAddress[4], MACAddress[5]]); end else begin Beep; Edit1.Text := 'Error'; ShowMessage('GetMACAddress Error! RetCode = $' + IntToHex(RetCode, 2)); end; finally Dispose(MACAddress); end;
估计不可能!
直接用汇编读写硬件,Windows是不会允许的不用NetBIOS API的方法也许有!
//获取网卡物理地址
var guid: TGUID;
i: integer;
begin
result := ';
CoCreateGUID(guid);
for i := Low(guid.D4)+2 to High(guid.D4) do
begin
result := result + IntToHex(guid.D4[i],2);
end;
end;
//加入nb30.pas单元
var
LanaNum: Byte;
MACAddress: PMACAddress;
RetCode: Byte;
begin
LanaNum := StrToInt(ComboBox1.Text);
New(MACAddress);
try
RetCode := GetMACAddress(LanaNum, MACAddress);
if RetCode = NRC_GOODRET then
begin
Edit1.Text := Format('%2.2x-%2.2x-%2.2x-%2.2x-%2.2x-%.2x', MACAddress[0], MACAddress[1], MACAddress[2], MACAddress[3], MACAddress[4], MACAddress[5]]);
end else
begin
Beep;
Edit1.Text := 'Error';
ShowMessage('GetMACAddress Error! RetCode = $' + IntToHex(RetCode, 2));
end;
finally
Dispose(MACAddress);
end;