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

📄 flash.pas

📁 简单的餐饮软件部分源码
💻 PAS
字号:
unit flash;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,Registry,jpeg,ExtCtrls,StdCtrls,Inifiles, DB, ADODB;
Const
  ID_BIT = $200000;
type
  TCPUID =array [1..4] of Longint;
  TVendor = array [0..11] of char;
  FUNCTION IsCPUID_Available : BOOLEAN; register;
  FUNCTION GetCPUID : TCPUID; assembler; register;
  Function Strcpuid(Cpuno:Longint):String;

type
  Tflashform = class(TForm)
    Image1: TImage;
    Label1: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure FormShow(Sender: TObject);
//    Function Cpuid(Cpucode:Longint):string;
  private
    { Private declarations }
    Begindate,begintime:String;
    Testnu,getsystemid,getregid:string;
    Checksystemid,Checkregid:string;
  public
    { Public declarations }
  end;

var
  flashform: Tflashform;
  testfile:Tinifile;
implementation
uses SnackDM;
{$R *.dfm}
Function Strcpuid(Cpuno:Longint):String;
Var Regcpu:Longint;
begin
 Regcpu:=((Cpuno*6)+20040829)-5027914;
 Strcpuid:=InttoStr(Regcpu);
end;
FUNCTION IsCPUID_Available : BOOLEAN; register;
asm
  PUSHFD		{direct access to flags no possible, only via stack}
  POP     EAX		{flags to EAX}
  MOV     EDX,EAX	{save current flags}
  XOR     EAX,ID_BIT	{not ID bit}
  PUSH    EAX		{onto stack}
  POPFD			{from stack to flags, WITH not ID bit}
  PUSHFD		{back to stack}
  POP     EAX		{get back to EAX}
  XOR     EAX,EDX	{check IF ID bit affected}
  JZ      @exit		{no, CPUID not availavle}
  MOV     AL,TRUE	{Result=TRUE}
  @exit:
END;

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 Tflashform.Cpuid(Cpucode:Longint):string;
//Var Reg:Longint;
//begin
//try
// Reg:=(((Cpucode+20040829)*29)+19760914)*25-19805027;
// Cpuid:=InttoStr(Reg);
//finally
// Abort;
// end;
//end;
//////////////////////////////////////////////////////////////
procedure Tflashform.FormCreate(Sender: TObject);
begin
AnimateWindow(Self.Handle,1000,AW_CENTER);
end;
procedure Tflashform.FormShow(Sender: TObject);
var Checkreg:TRegistry;
    runnoid:string;
begin
 image1.Picture.LoadFromFile(datam.SPflashpath);
if (FileExists('D:\Regedit.ini')=True) then
begin
 Checkreg:=TRegistry.Create;
 Checkreg.RootKey:=HKEY_CLASSES_ROOT;
 if Checkreg.OpenKey('Setup Goldsea',True) then
  begin
    Checksystemid:=Checkreg.ReadString('Goldsea cpuid');
    Checkregid:=Checkreg.ReadString('GoldSea WorkStation Regedit');
    getsystemid:=Strcpuid(GetCPUID[1])+Strcpuid(GetCPUID[2])+Strcpuid(GetCPUID[3])+Strcpuid(GetCPUID[4]);
    getregid:=IntToStr(GetCPUID[4])+IntToStr(GetCPUID[3])+IntToStr(GetCPUID[2])+IntToStr(GetCPUID[1]);
    if (getsystemid<>Checksystemid) or (Checkregid<>getregid) then
     begin
       messagebeep(MB_ICONASTERISK);
       messagebox(self.Handle,Pchar(''+DataM.SPlanguage.ReadString('msgbox','0004','')+''),Pchar(''+DataM.SPlanguage.ReadString('msgbox','0005','')+''),MB_ICONEXCLAMATION or MB_OK);
       Application.Terminate;
     end;
  end;
end;
if (FileExists('D:\Regedit.ini')=False) then
 begin
  testfile:=Tinifile.Create('D:\Runtime.ini');
  if (FileExists('D:\Runtime.ini')=False) then
    begin
      testfile.WriteString('Rumtimes','timeid','1');
    end else
        begin
         runnoid:=testfile.ReadString('Rumtimes','timeid','');
         if StrToInt(runnoid)<=100 then
           begin
            runnoid:=IntToStr(StrToInt(runnoid)+1);
            testfile.WriteString('Rumtimes','timeid',''+runnoid+'');
           end else
              begin
               messagebeep(0);
               messagebox(self.Handle,Pchar(''+DataM.SPlanguage.ReadString('msgbox','0002','')+''),Pchar(''+DataM.SPlanguage.ReadString('msgbox','0003','')+''),MB_ICONEXCLAMATION or MB_OK);
               Application.Terminate;
              end;
           FileSetAttr('D:\Runtime.ini',2);
        end;
 end;
end;
end.

⌨️ 快捷键说明

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