硬件信息获取单元 XE10.2.3测试通过

本文介绍了硬件信息获取单元XE10.2.3的测试通过,包括CPUID获取、MAC地址信息和用户信息等功能。程序通过汇编方式获取CPUID,提供CPU频率和类型等详细信息。
摘要由CSDN通过智能技术生成

    {-----------------------------------------------------------------------------
程序:硬件信息获取单元  XE10.2.3测试通过    

作者:suyingsoft 2020.09.07
    备注:
    功能:硬件信息获取单元
    -----------------------------------------------------------------------------}

    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 }
    {----------------------------------------------------------------------------\-
    作者:suyingsoft 2020.09.07
    参数: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;

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

    function TCPUIDInfo.CPUIDTostr(ACPUID: TCPUID): string;
    begin
      Result := '';
      Result := IntToHex(ACPUID[1] , 8) + IntToHex(ACPUID[2] , 8) + IntToHex(ACPUID[3]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值