乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Delphi獲取本機Mac地址

       fjwolf 2009-03-19
      Delphi獲取本機Mac地址
      2008-07-05 16:51

      在delphi的nb30.pas單元中,包含了對netbios協(xié)議的完全支持,在該單元中定義了一個名為netbios的函數,通過該函數就能夠得到本機的MAC地址.

      在編程時,引入nb30單元.如下源碼....

      unit Unit1;

      interface

      uses
         Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
         Dialogs,   nb30, StdCtrls;    //加 nb30

      type
         TForm1 = class(TForm)
           Edit1: TEdit;
           procedure FormCreate(Sender: TObject);
         private
           { Private declarations }
         public
           { Public declarations }
         end;

      var
         Form1: TForm1;

      implementation

      {$R *.dfm}
      function GetNetBIOSAddress : string;
      var   ncb   : TNCB;
         status   : TAdapterStatus;
         lanenum : TLanaEnum;
           procedure ResetAdapter (num : char);
           begin
             fillchar(ncb,sizeof(ncb),0);
             ncb.ncb_command:=char(NCBRESET);
             ncb.ncb_lana_num:=num;
             Netbios(@ncb);
           end;
      var
         i:integer;
         lanNum   : char;
         address : record
                    part1 : Longint;
                    part2 : Word;
                   end absolute status;
      begin
         Result:='';
         fillchar(ncb,sizeof(ncb),0);
           ncb.ncb_command:=char(NCBENUM);
           ncb.ncb_buffer:=@lanenum;
           ncb.ncb_length:=sizeof(lanenum);
         Netbios(@ncb);
         if lanenum.length=#0 then exit;
         lanNum:=lanenum.lana[0];
         ResetAdapter(lanNum);
         fillchar(ncb,sizeof(ncb),0);
           ncb.ncb_command:=char(NCBASTAT);
           ncb.ncb_lana_num:=lanNum;
           ncb.ncb_callname[0]:='*';
           ncb.ncb_buffer:=@status;
           ncb.ncb_length:=sizeof(status);
         Netbios(@ncb);
         ResetAdapter(lanNum);
         for i:=0 to 5 do
         begin
           result:=result+inttoHex(integer(Status.adapter_address[i]),2);
           if (i<5) then
           result:=result+'-';
         end;
      end;
      //
      procedure TForm1.FormCreate(Sender: TObject);   //命令
      begin
      edit1.text:=GetNetBIOSAddress;
      end;
      end.

      當然,也還有其它方法實現.如下例則是引入dll函數庫來實現

      Function MacAddress: string;
      var
         Lib: Cardinal;
         Func: function(GUID: PGUID): Longint; stdcall;
         GUID1, GUID2: TGUID;
      begin
         Result := ';
         Lib := LoadLibrary('rpcrt4.dll');
         if Lib <> 0 then
         begin
           if Win32Platform <>VER_PLATFORM_WIN32_NT then
             @Func := GetProcAddress(Lib, 'UuidCreate')
             else @Func := GetProcAddress(Lib, 'UuidCreateSequential');
           if Assigned(Func) then
           begin
             if (Func(@GUID1) = 0) and
               (Func(@GUID2) = 0) and
               (GUID1.D4[2] = GUID2.D4[2]) and
               (GUID1.D4[3] = GUID2.D4[3]) and
               (GUID1.D4[4] = GUID2.D4[4]) and
               (GUID1.D4[5] = GUID2.D4[5]) and
               (GUID1.D4[6] = GUID2.D4[6]) and
               (GUID1.D4[7] = GUID2.D4[7]) then
             begin
               Result :=
                IntToHex(GUID1.D4[2], 2) + '-' +
                IntToHex(GUID1.D4[3], 2) + '-' +
                IntToHex(GUID1.D4[4], 2) + '-' +
                IntToHex(GUID1.D4[5], 2) + '-' +
                IntToHex(GUID1.D4[6], 2) + '-' +
                IntToHex(GUID1.D4[7], 2);
             end;
           end;
           FreeLibrary(Lib);
         end;
      end;


        本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現有害或侵權內容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多