如题

解决方案 »

  1.   

    Function TForm1.GetAdapterMac(ANo:Integer):String;
    var
    Ncb:TNcb;
    Adapter:TAdapterStatus; 
    Lanaenum:TLanaenum; 
    IntIdx:Integer; //
    cRc:Char; 
    StrTemp:String;
    begin
    Result:='';
    Try
    ZeroMemory(@Ncb,SizeOf(Ncb)); 
    Ncb.ncb_command:=Chr(NCbenum); 
    NetBios(@NCb);
    Ncb.ncb_buffer:=@Lanaenum; //再处理enum命令
    Ncb.ncb_length:=SizeOf(Lanaenum);
    cRc:=NetBios(@Ncb);
    if Ord(cRc)<>0 then
    exit;
    ZeroMemory(@Ncb,SizeOf(Ncb)); //适配器清零
    Ncb.ncb_command:=Chr(NcbReset);
    Ncb.ncb_lana_num:=Lanaenum.lana[aNo];
    cRc:=NetBios(@Ncb);
    if Ord(cRc)<>0 then
    exit;
    //得到适配器状态
    ZeroMemory(@Ncb,SizeOf(Ncb));
    Ncb.ncb_command:=Chr(NcbAstat);
    Ncb.ncb_lana_num:=Lanaenum.lana[aNo];
    StrPcopy(Ncb.ncb_callname,'*');
    Ncb.ncb_buffer:=@Adapter;
    Ncb.ncb_length:=SizeOf(Adapter);
    NetBios(@Ncb);//将mac地址转换成字符串输出
    StrTemp:='';
    For IntIdx:=0 to 5 do
    StrTemp:=StrTemp+IntToHex(Integer(Adapter.adapter_address[intIdx]),2);
    Result:=StrTemp;
    Finally
    end;
    end;请给分!我等分用,呵呵呵!谢谢!
      

  2.   

    nterfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls,ActiveX;type
      TForm1 = class(TForm)
        Button1: TButton;
        Edit1: TEdit;
        Label1: TLabel;
        Label2: TLabel;
        Edit2: TEdit;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.DFM}procedure TForm1.Button1Click(Sender: TObject);
    var
        GUID: TGUID;
        WCLID: array[0..127] of WideChar;
        Start:Integer;
    begin
      CoCreateGUID(GUID);
      StringFromGuid2(GUID,WCLID,SizeOf(WCLID) div 2);
      Edit1.Text:=WideCharToString(WCLID);
      Start:=Length(Edit1.Text)-12;
      Edit2.Text:=Copy(Edit1.Text,Start,12);
    end;end.这是"Delphi网络通信协议分析与应用实现"这本书上的;
    可以的!要uses ActiveX