我这儿有一个程序。不过程序是BCB的。如果你的话我EMAIL给你。

解决方案 »

  1.   

    我的机器没有安装网卡也可以获得GUID,这时候我增么才能知道,机器有没有安装网卡。
    如果认为安装了一个悉尼的网卡,我又该如何区分呢?
      

  2.   

    看我的!
           //获取网卡地址,使用netbios 3.0调用 uses nb30.pas shipped with delphi 4.0
           function _NetCardAddress : String ;
           var
             NCB : TNCB ;               // Netbios control block
             ADAPTER : TADAPTERSTATUS ; // Netbios adapter status
             LANAENUM : TLANAENUM ;     // Netbios lana
             intIdx : Integer ;         // Temporary work value
             CRC : Char ;               // Netbios return code
             strTemp : String ;         // Temporary string
           begin
             Result := '' ;
             try
               ZeroMemory(@NCB,SizeOf(NCB)) ;     // Zero control blocl
               NCB.ncb_command := Chr(NCBENUM) ;  // Issue enum command
               cRC := NetBios(@NCB) ;
                if Ord(cRC)>0 then begin
                  result:=_NBReturnMSG(crc);
                  exit ;
               end;           NCB.ncb_buffer := @LANAENUM ;      // Reissue enum command
               NCB.ncb_length := SizeOf(LANAENUM);
               cRC := NetBios(@NCB) ;
               if Ord(cRC)>0 then begin
                  result:=_NBReturnMSG(crc);
                  exit ;
               end;
               ZeroMemory(@NCB,SizeOf(NCB)) ;     // Reset adapter
               NCB.ncb_command := Chr(NCBRESET) ;
               NCB.ncb_lana_num := LANAENUM.lana[0] ;
               cRC := NetBios(@NCB) ;
               if Ord(cRC)>0 then begin
                  result:=_NBReturnMSG(crc);
                  exit ;
               end;
               ZeroMemory(@NCB,SizeOf(NCB)) ;   // Get adapter address
               NCB.ncb_command := Chr(NCBASTAT) ;
               NCB.ncb_lana_num := LANAENUM.lana[0] ;
               StrPCopy(NCB.ncb_callname,'*') ;
               NCB.ncb_buffer := @ADAPTER ;
               NCB.ncb_length := SizeOf(ADAPTER) ;
               cRC := NetBios(@NCB) ;
               if Ord(cRC)>0 then begin
                  result:=_NBReturnMSG(crc);
                  exit ;
               end;           // Convert Netcard address it to string
               strTemp := '' ;
               for intIdx := 0 to 5 do strTemp := strTemp + _Char2Hex(ADAPTER.adapter_address[intIdx]) ;
               Result := strTemp ;
             finally
             end ;
           end ;
      

  3.   

    不知你指的是在Window3.2(16Bit Delphi)还是Windows95&98&2000(32Bit Delphi),如果是32位Delphi,使用Netbios(nb30.pas),如果是16位Delphi,使用NetBiosCall(汇编语言)。前一段时间从网上下载了一个控件,可以实现此功能,如果需要,请告知:ZXGHL&NETEASE.COM。