⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 regist.pas

📁 超级播放器 -- 软件特点 -- 功能齐全 操作简便 绿色环保
💻 PAS
字号:
unit regist;

interface

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

type
   TCPUID  = array[1..4] of Longint;
  TfrmRegist = class(TForm)
    Edit1: TEdit;
    Label1: TLabel;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    Bevel1: TBevel;
    Image1: TImage;
    Label3: TLabel;
    Edit2: TEdit;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmRegist: TfrmRegist;
  function inputRegistCode(var codestr,sq_code:string):boolean;
    function GetCPUID : TCPUID; assembler; register;
  function GetHDSerialNumber: string;
implementation
 uses main,U_Crypt;
{$R *.DFM}
function GetCPUID : TCPUID; assembler; register;
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;
function GetHDSerialNumber: string;
{$IFDEF WIN32} 
var
  pdw : pDWord; 
  mc, fl : dword; 
{$ENDIF} 
begin 
  {$IfDef WIN32}
  New(pdw);
  GetVolumeInformation(nil,nil,0,pdw,mc,fl,nil,0); 
  Result :=// pdw^;
          IntToHex(HiWord(pdw^), 4) +
               '-' +
               IntToHex(LoWord(pdw^), 4);
  dispose(pdw);
  {$ELSE} 
  Result := inttostr(GetWinFlags);
  {$ENDIF} 
end;
function inputRegistCode(var codestr,sq_code:string):boolean;
begin
  result:=false;
  with TfrmRegist.Create(application) do
    try
      if showmodal=mrok then
      begin
        sq_code:=edit2.text;
        codestr:=edit1.Text;
        result:=true;
      end;
    finally
      free;
    end;
end;
procedure TfrmRegist.FormCreate(Sender: TObject);
var
  CPUID : TCPUID;
  I, P  : Integer;
  HD_Code,CPU_Code,s1,s2,s3,s4:string;
begin
  //得到机器码
  for I := Low(CPUID) to High(CPUID)  do CPUID[I] := -1;
  CPUID := GetCPUID;
  CPU_Code :=IntToHex(HiWord(CPUID[1]+CPUID[2]+CPUID[3]+CPUID[4]), 4) +
            '-' +
            IntToHex(LoWord(CPUID[1]+CPUID[2]+CPUID[3]+CPUID[4]), 4);

  HD_Code:=GetHDSerialNumber;
  //机器码=CPU_Code+'-'+HD_Code;

  //得到注册申请码
  p:=pos('-',CPU_Code);
  s1:=copy(CPU_Code,1,p-1);
  s2:=copy(CPU_Code,p+1,length(CPU_Code)-p);

  p:=pos('-',HD_Code);
  s3:=copy(HD_Code,1,p-1);
  s4:=copy(HD_Code,p+1,length(HD_Code)-p);

  s1:=encrypt2(s1,393);
  s2:=encrypt2(s2,393);
  s3:=encrypt2(s3,393);
  s4:=encrypt2(s4,393);

  edit2.text:=s1+'-'+s4+'-'+s3+'-'+s2;;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -