两个问题:
   1:一台PC 上拥有 GUID 号的设备有哪些,我应该用什么方法去读取???
   2:网卡上的mac 地址应该用什么方法读取???

解决方案 »

  1.   

    取MAC 在命令行运行一下这个试试nbtstat -a 192.168.0.2  最后的IP地址是你本机的IP地址
      

  2.   

    查查帮助吧,看看如何调用api函数(我记得好象是netbios),你试试看
      

  3.   

    http://www.vclxx.org/DELPHI/D32FREE/ETHERADR.ZIP
    取mac地址的代码
      

  4.   

    http://www.vclxx.org/DELPHI/D32FREE/NB.ZIP 
    应该是这个
      

  5.   

    所谓的GUID是全球唯一标识符的意思,主要是表示COM组件中每个接口的一个标识符。但是设备是否有这个GUID我就不知道了,不过我觉得没有。网卡的mac并不叫做GUID,虽然性质一样
      

  6.   

    function GetAdapterInfo(Lana: Char): string;
    var
      Adapter: PAdapterStatus;
      NCB: TNCB;
      BReset: Boolean;
    begin
      BReset := (Win32Platform = VER_PLATFORM_WIN32_NT);
      if BReset then
      begin
        FillChar(NCB, SizeOf(NCB), 0);
        NCB.ncb_command := Char(NCBRESET);
        NCB.ncb_lana_num := Lana;
        if Netbios(@NCB) <> Char(NRC_GOODRET) then
        begin
          Result := 'reset wrong';
          Exit;
        end;
      end;  FillChar(NCB, SizeOf(NCB), 0);
      NCB.ncb_command := Char(NCBASTAT);
      NCB.ncb_lana_num := Lana;
      NCB.ncb_callname := '*';  NCB.ncb_length := SizeOf(TAdapterStatus) + 255 * SizeOf(TNameBuffer);
      GetMem(Adapter, NCB.ncb_length);
      NCB.ncb_buffer := PChar(Adapter);
      if Netbios(@NCB) <> Char(NRC_GOODRET) then
      begin
        Result := 'mac not found';
        Exit;
      end;
      Result :=
        IntToHex(Byte(Adapter.adapter_address[0]), 2) + '-' +
        IntToHex(Byte(Adapter.adapter_address[1]), 2) + '-' +
        IntToHex(Byte(Adapter.adapter_address[2]), 2) + '-' +
        IntToHex(Byte(Adapter.adapter_address[3]), 2) + '-' +
        IntToHex(Byte(Adapter.adapter_address[4]), 2) + '-' +
        IntToHex(Byte(Adapter.adapter_address[5]), 2);
    end;function GetMACAddress: string;
    var
      AdapterList: TLanaEnum;
      NCB: TNCB;
      i: integer;
    begin
      FillChar(NCB, SizeOf(NCB), 0);
      NCB.ncb_command := Char(NCBENUM);
      NCB.ncb_buffer := @AdapterList;
      NCB.ncb_length := SizeOf(AdapterList);
      Netbios(@NCB);
      if Byte(AdapterList.length) > 0 then
        for i := 0 to Byte(AdapterList.Length) - 1 do
        begin
          Result := Result + '''' + GetAdapterInfo(AdapterList.lana[i]) + ''',';
        end
      else
        Result := 'no adapter';
      Result[length(Result)] := ' ';
    end;肯定能用,别忘了use unit NB30
      

  7.   

    //uses windows,sysutils,nb30;
    //取MAC地址function GetNetMac():shortString;
    var
      NCB:TNCB;
      ADAPTER:TADAPTERSTATUS;
      i:smallint;
      vre:char;
    begin
      Result := '';
      try
        ZeroMemory(@NCB,sizeof(NCB));
        NCB.ncb_command := chr(NCBRESET);
        vre := NetBios(@NCB);
        if vre = #0 then
        begin
          ZeroMemory(@NCB,sizeof(NCB));
          NCB.ncb_command := chr(NCBASTAT);
          strpcopy(NCB.ncb_callname,'*               '); //NCB.ncb_CallName field (in a 16-chr string).
          NCB.ncb_lana_num := chr(0);
          NCB.ncb_buffer := @ADAPTER;
          NCB.ncb_length := sizeof(ADAPTER);
          vre := NetBios(@NCB);
          if vre = #0 then
          begin
            result := '';
            for i :=0 to 5 do
              result := Result+IntTOHex(integer(ADAPTER.adapter_address[i]),2);
          end;
        end;
      except
      end;
    end;
      

  8.   

    问题 1
      记得网卡、主板、CPU都有GUID,别的就不晓得了
    问题 2
      在命令提示符下,键入ipconfig /all,就显示出你所装的所有网卡的MAC
      

  9.   

    唉!老兄,你还在这里啊?是不是想唯一标识号?调用api函数吧,在delphi里好象只要use一个unit(这是个专门申明api函数的单元,具体名字我忘了)里面有的,核心函数好象就是netbios()
      

  10.   

    呵呵older(疲倦的程序员)已经说的很明白了。