获取硬件信息的delphi源码(CPUID、操作系统、Mac物理地址、计算机名称、IP地址、用户名)

这篇博客分享了如何使用Delphi编程语言来获取系统的硬件和网络信息,包括CPU的ID、操作系统详情、Mac物理地址、计算机名称、IP地址以及当前用户名的源码实现。通过这些信息,开发者可以更好地理解和管理他们的应用运行环境。
摘要由CSDN通过智能技术生成

转载请保留本文链接地址:http://blog.csdn.net/sushengmiyan/article/details/8545673

{-----------------------------------------------------------------------------
作者:sushengmiyan 2013.01.26
备注:
功能:硬件信息获取单元
-----------------------------------------------------------------------------}

unit ApplicationHardWareInfo;

interface
uses
  Windows, SysUtils, Classes, Registry, Nb30, WinSock;

type
  TCPUID = array[1..4] of Longint;
  function GetCPUID: TCPUID; assembler; register;
type

 //CPUID信息类
 TCPUIDInfo = class
 private
   FCPUID: TCPUID;
   FCPUIDStr: string;
   procedure SetCPU(AHandle: THandle; CpuNo: Integer);
   function CPUIDTostr(ACPUID: TCPUID): string;
   function GetComputerBasicFrequency: string;
   function GetCPUType: string;
 public
   function GetCPUIDstr: string;
   property CPUFrequency: string read GetComputerBasicFrequency;
   property ProcessorType: string read GetCPUType;
   constructor Create;
 end;

 //mac地址信息类
 TMacAdressInfo = class
 private
   FMacAdress: string;
   function GetMacPhysicalAddress(Alana: Integer = 0): string;
   function GetMacAddress: string;
 public
   property MacAdrress: string read GetMacAddress;
   constructor Create;
 end;
 
 //用户信息类
 TPCUserInfo = class
 private
   function GetUserName: string;
   function GetHostIP: string;
   function GetWindowsVertion: string;
 public
   property UserName: string read GetUserName;
   property HostIP: string read GetHostIP;
   property WindowsVertion: string read GetWindowsVertion;
   constructor Create;
 end;

implementation

{ TCPUIDInfo }
{----------------------------------------------------------------------------\-
作者:sushengmiyan 2013.01.26
参数:None
返回:TCPUID
功能:汇编方式获取CPUID
\-----------------------------------------------------------------------------}

function GetCPUID: TCPUID;
asm
  PUSH    EBX         {Save affected register}
  PUSH    EDI
  MOV     EDI,EAX     {@Resukt}
  MOV     EAX,1
  DW      $A20F       {CPUID Command}
  STOSD                {CPUID[1]}
  MOV     EAX,EBX
  STOSD               {CPUID[2]}
  MOV     EAX,ECX
  STOSD               {CPUID[3]}
  MOV     EAX,EDX
  STOSD               {CPUID[4]}
  POP     EDI         {Restore registers}
  POP     EBX
end;

{----------------------------------------------------------------------------\-
作者:sushengmiyan 2013.01.26
参数:ACPUID: TCPUID
返回:string
功能:将十六进制的CPUID转换为字符串
\-----------------------------------------------------------------------------}

function TCPUIDInfo.CPUIDTostr(ACPUID: TCPUID): string;
begin
  Result := '';
  Result := IntToHex(ACPUID[1] , 8) + IntToHex(ACPUID[2] , 8) + I
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值