捐赠 | 广告 | 注册 | 发布 | 上传 | 关于我们    
  沪ICP备05001939号 DELPHI盒子 | 盒子论坛 | 盒子文章 | 盒子问答悬赏 | 最新更新 | 论坛检索 | 下载中心 | 高级搜索    
  精品专区 | 繁體中文 | 奖励公告栏 | 直通车账号登陆 | 关闭GOOGLE广告 | 临时留言    
盒子资源分类
全部展开 - 全部合拢
获取CPU、网卡和硬盘物理信息
关键字:HardwareInfo CPU 网卡地址 硬盘物理
来 自:原创
平 台:Win2k/XP/NT,Win2003 下载所需:0 火柴
深浅度:中级 完成时间:2006/6/15
发布者:huasoft111 发布时间:2006/9/27
编辑器:BDS2006 语  种:简体中文
分 类:硬件 下载浏览:10228/29718
加入到我的收藏
下载错误报错
登陆以后才能下载
 用户名:
 密 码:
自动登陆(30天有效)
图片如果打不开,说明流量不够了,请稍候下载……
很多程序员因为要对软件注册和加密等原因,需要获取使用者电脑的硬件信息作为唯一标识,其实网上也有很多获取CPU/网卡/硬盘物理信息的例子,但大多以控件或DLL方式提供,没有源码,用起来多少有点不放心。为此火人经过搜索和整理,将此类功能封装成THardwareInfo,方便大家使用。
    
获取网卡地址   :    THardwareInfo.GetMACAddress(Num: Byte=0): String;
获取硬盘信息   :    THardwareInfo.GetIDEDiskSerialNumber : String;
获取驱动器信息:    THardwareInfo.GetIDEDiskDriveInfo(Drive:Char;InfoID:Byte=1) : String;
获取CPU信息   :    THardwareInfo.GetCPUInfo(InfoID:Byte=1) : String;

本软件你可自由使用,但请保留HardwareInfo.pas文件头的版权信息。
Google
 
本站原创作品,未经作者许可,严禁任何方式转载;转载作品,如果侵犯了您的权益,请联系我们
龙脉加密锁 15元起 Grid++Report 报表 申请支付@网
 相关文章
获取CPU、网卡和硬盘物理信息
huasoft111 2006/9/27 下+10228/浏+29719 评+52
获得硬盘序列号的源码 (同时获得显示器刷新…
mantousoft 2003/9/5 下+2731/浏+19915 评+13
相关评论
共有评论52条 当前显示最后6条评论
huasoft111 2006/10/2 17:22:26
请到此下载for D7的源码:http://www.huosoft.com/blogview.asp?logID=60
delphinet 2006/10/4 12:04:29
有时取不出硬盘物理系号:希捷IDE硬盘,Win2K AS环境,还没看代码,估计SCSI硬盘更不行的,前不久盒子上有比较全的代码,实现的代码很少的...
tom_hanks 2007/2/3 14:16:55
网卡的要连接上了才可读号,下面是不连也可读的:
//Delphi编写 获取内网IP外网IP及网关 网卡MAC地址
//2006-09-02 03:36
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

Const
  MAX_ADAPTER_NAME_LENGTH        = 256;
  MAX_ADAPTER_DESCRIPTION_LENGTH = 128;
  MAX_ADAPTER_ADDRESS_LENGTH     = 8;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
Type
  TIPAddressString = Array[0..4*4-1] of Char;

  PIPAddrString = ^TIPAddrString;
  TIPAddrString = Record
    Next      : PIPAddrString;
    IPAddress : TIPAddressString;
    IPMask    : TIPAddressString;
    Context   : Integer;
  End;


PIPAdapterInfo = ^TIPAdapterInfo;
  TIPAdapterInfo = Record { IP_ADAPTER_INFO }
    Next          : PIPAdapterInfo;
    ComboIndex          : Integer;
    AdapterName         : Array[0..MAX_ADAPTER_NAME_LENGTH+3] of Char;
    Description         : Array[0..MAX_ADAPTER_DESCRIPTION_LENGTH+3] of Char;
    AddressLength       : Integer;
    Address          : Array[1..MAX_ADAPTER_ADDRESS_LENGTH] of Byte;
    Index          : Integer;
    _Type          : Integer;
    DHCPEnabled         : Integer;
    CurrentIPAddress    : PIPAddrString;
    IPAddressList       : TIPAddrString;
    GatewayList         : TIPAddrString;
  End;
var
  Form1: TForm1;

implementation

{$R *.dfm}

Function GetAdaptersInfo(AI : PIPAdapterInfo; Var BufLen : Integer) : Integer;
         StdCall; External 'iphlpapi.dll' Name 'GetAdaptersInfo';

Function MACToStr(ByteArr : PByte; Len : Integer) : String;
  Begin
    Result := '';
    While (Len > 0) do Begin
//2007-02-03
//      Result := Result+IntToHex(ByteArr^,2)+'-';
      Result := Result+IntToHex(ByteArr^,2);
      ByteArr := Pointer(Integer(ByteArr)+SizeOf(Byte));
      Dec(Len);
    End;
//2007-02-03
//    SetLength(Result,Length(Result)-1); { remove last dash }
End;

Function GetAddrString(Addr : PIPAddrString) : String;
  Begin
    Result := '';
    While (Addr <> nil) do Begin
      Result := Result+'A: '+Addr^.IPAddress+' M: '+Addr^.IPMask+#13;
      Addr := Addr^.Next;
    End;
  End;

procedure TForm1.Button1Click(Sender: TObject);
var
  AI,Work : PIPAdapterInfo;
  Size    : Integer;
  Res     : Integer;
begin
  Size := 5120;
  GetMem(AI,Size);
  work:=ai;
  Res := GetAdaptersInfo(AI,Size);
  If (Res <> ERROR_SUCCESS) Then Begin
    SetLastError(Res);
    RaiseLastWin32Error;
  End;
  memo1.Lines.Add ('Adapter address: '+MACToStr(@Work^.Address,Work^.AddressLength));
  repeat
    memo1.Lines.add('  IP addresses: '+GetAddrString(@Work^.IPAddressList));
    work:=work^.Next ;
  until (work=nil);
end;

end.
wiseinfo 2007/3/19 18:55:42
不知道,代码很清楚,虽然是汇编,
ruoqi656 2007/5/22 14:38:24
如何取局域网里面的机子MAC地址
chenyb 2007/8/7 0:09:59
在串口硬盘无法读取出来硬盘序列号,有没有串口硬盘的读取方法?
我要发表评论 查看全部评论
 
  DELPHI盒子版权所有 1999-2012 V3.01 沪ICP备05001939号 更新RSS列表