亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? onguard.pas

?? 詳細的ERP設計資料
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
{*********************************************************}
{*                  ONGUARD.PAS 1.13                     *}
{*     Copyright (c) 1996-02 TurboPower Software Co      *}
{*                 All rights reserved.                  *}
{*********************************************************}

{$I ONGUARD.INC}

{$B-} {Complete Boolean Evaluation}
{$I+} {Input/Output-Checking}
{$P+} {Open Parameters}
{$T-} {Typed @ Operator}
{$W-} {Windows Stack Frame}
{$X+} {Extended Syntax}

{$IFNDEF Win32}
  {$G+} {286 Instructions}
  {$N+} {Numeric Coprocessor}
  {$C MOVEABLE,DEMANDLOAD,DISCARDABLE}
{$ELSE}
  {$J+} {Assignable Typed Constants}                                   {!!.11}
{$ENDIF}

unit OnGuard;
  {-code and key classes and routines}

interface

uses
  {$IFDEF Win32} Windows, {$ELSE} WinTypes, WinProcs, {$ENDIF}
  Classes, Controls, SysUtils,
  OgConst,
  OgUtil;

const
  {magic values}
  DaysCheckCode    = $649B;
  DateCheckCode    = $A4CB;
  NetCheckCode     = $9341;
  RegCheckCode     = $D9F6;
  SerialCheckCode  = $3C69;
  UsageCheckCode   = $F3D5;
  SpecialCheckCode = $9C5B;

type
  {code tyes}
  PCode = ^TCode;
  TCode = packed record
    CheckValue : Word;               {magic value}
    Expiration : Word;               {expiration date or 0, if none}
    case Byte of
      0 : (FirstDate    : Word;      {for date code}
           EndDate      : Word);
      1 : (Days         : Word;      {for days code}
           LastAccess   : Word);
      2 : (RegString    : LongInt);  {for reg code}
      3 : (SerialNumber : LongInt);  {for serial number code}
      4 : (UsageCount   : Word;      {for usage count code}            {!!.02}
           LastChange   : Word);                                       {!!.02}
      5 : (Value        : LongInt);  {for specail codes}
      6 : (NetIndex     : LongInt);  {for net codes}
  end;

type
  TCodeType = (ctDate, ctDays, ctRegistration, ctSerialNumber,
               ctUsage, ctNetwork, ctSpecial, ctUnknown);
  {order must match tab order for code generation notebook}

type
  TKey     = array [0..15] of Byte;
  TKeyType = (ktRandom, ktMessageDigest, ktMessageDigestCS);
  {order must match order for key generation combobox string list}

type
  {contexts}
  TTMDContext = array [0..279] of Byte;
  TMD5Context = array [0..87] of Byte;
  TMD5Digest  = array [0..15] of Byte;

  {bit mixing types}
  T128Bit     = array [0..3] of LongInt;
  T256Bit     = array [0..7] of LongInt;

const
  DefCodeType      = ctDate;
  DefKeyType       = ktRandom;

type
  TEsMachineInfoSet =                                                  {!!.05}
    set of (midUser, midSystem, midNetwork, midDrives);                {!!.05}

type
  {result of code verification}
  TCodeStatus = (ogValidCode,    {code is valid but may still be expired}
                 ogInvalidCode,  {code is invalid}
                 ogPastEndDate,  {end date has been reached}
                 ogDayCountUsed, {number of days authorized have been used}
                 ogRunCountUsed, {number of runs authorized have been used}
                 ogNetCountUsed, {number of authorized users has been exceeded}
                 ogCodeExpired); {expiration date has been reached}

type
  EOnGuardException = class(Exception);

type
  TChangeCodeEvent =
    procedure(Sender : TObject; Code : TCode)
    of object;
  TCheckedCodeEvent =
    procedure(Sender : TObject; Status : TCodeStatus)
    of object;
  TGetCodeEvent =
    procedure(Sender : TObject; var Code : TCode)
    of object;
  TGetKeyEvent =
    procedure(Sender : TObject; var Key : TKey)
    of object;
  TGetModifierEvent =
    procedure(Sender : TObject; var Value : LongInt)
    of object;
  TGetRegStringEvent =
    procedure(Sender : TObject; var Value : string)
    of object;

  {base regisration code component}
  TOgCodeBase = class(TComponent)
  protected {private}
    {property variables}
    FAutoCheck     : Boolean;          {true to test code when loaded}
    FCode          : TCode;            {release code}
    FModifier      : LongInt;          {key modifier}
    FStoreCode     : Boolean;          {true to store release code on stream}
    FStoreModifier : Boolean;          {true to store key modifier on stream}

    {event variables}
    FOnChecked     : TCheckedCodeEvent;{called after auto check is made}
    FOnGetCode     : TGetCodeEvent;    {called to retrieve release code}
    FOnGetKey      : TGetKeyEvent;     {called to retrieve key}
    FOnGetModifier : TGetModifierEvent;{called to retrieve key modifier}

    {property methods}
    function GetCode : string;
    function GetModifier : string;
    function GetAbout : string;                                      {!!.08}
    procedure SetCode(const Value : string);
    procedure SetModifier(const Value : string);
    procedure SetAbout(const Value : string);                        {!!.08}

  protected
    procedure Loaded;
      override;

    procedure DoOnChecked(Value : TCodeStatus);
      dynamic;
    function DoOnGetCode : TCode;
      dynamic;
    procedure DoOnGetKey(var Key : TKey);
      dynamic;
    function DoOnGetModifier : LongInt;
      dynamic;

    {protected properties}
    property Code : string
      read GetCode
      write SetCode;

    property StoreCode : Boolean
      read FStoreCode
      write FStoreCode;

  public
    constructor Create(AOwner : TComponent);
      override;

    function CheckCode(Report : Boolean) : TCodeStatus;
      virtual; abstract;
    function IsCodeValid : Boolean;
      {-return true if code is valid}

  published
    {properties}
    property AutoCheck : Boolean
      read FAutoCheck
      write FAutoCheck
      default DefAutoCheck;

    property Modifier : string
      read GetModifier
      write SetModifier
      stored FStoreModifier;

    property StoreModifier : Boolean
      read FStoreModifier
      write FStoreModifier
      default DefStoreModifier;

    property About : string                                          {!!.08}
      read GetAbout                                                  {!!.08}
      write SetAbout                                                 {!!.08}
      stored False;

    {events}
    property OnChecked : TCheckedCodeEvent
      read FOnChecked
      write FOnChecked;

    property OnGetKey : TGetKeyEvent
      read FOnGetKey
      write FOnGetKey;

    property OnGetCode : TGetCodeEvent
      read FOnGetCode
      write FOnGetCode;

    property OnGetModifier : TGetModifierEvent
      read FOnGetModifier
      write FOnGetModifier;
  end;

  TOgMakeCodes = class(TComponent)
  protected {private}
    {property variables}
    FCode        : TCode;
    FCodeType    : TCodeType;
    FKey         : TKey;
    FKeyFileName : string;
    FKeyType     : TKeyType;
    FShowHints   : Boolean;

    {property methods}
    function GetAbout : string;                                      {!!.08}
    procedure SetAbout(const Value : string);                        {!!.08}

  public
    constructor Create(AOwner : TComponent);
      override;
    function Execute : Boolean;
    procedure GetCode(var Value : TCode);                            {!!.08}
    procedure SetCode(Value : TCode);                                {!!.08}
    procedure GetKey(var Value : TKey);                              {!!.08}
    procedure SetKey(Value : TKey);                                  {!!.08}

    property KeyType : TKeyType
      read FKeyType
      write FKeyType;

  published

    {properties}
    property CodeType : TCodeType
      read FCodeType
      write FCodeType
      default DefCodeType;

     property KeyFileName : string
      read FKeyFileName
      write FKeyFileName;

    property ShowHints : Boolean
      read FShowHints
      write FShowHints
      default False;

    property About : string                                          {!!.08}
      read GetAbout                                                  {!!.08}
      write SetAbout                                                 {!!.08}
      stored False;
  end;

type
  TOgMakeKeys = class(TComponent)
  protected {private}
    {property variables}
    FKeyFileName : string;
    FKey         : TKey;
    FKeyType     : TKeyType;
    FShowHints   : Boolean;

    {property methods}
    function GetAbout : string;                                      {!!.08}
    procedure SetAbout(const Value : string);                        {!!.08}

  public
    constructor Create(AOwner : TComponent);
      override;
    function Execute : Boolean;

    procedure ApplyModifierToKey(Modifier : LongInt; var Key; KeySize : Cardinal);
      {-signs the key with the modifier}
    function GenerateDateModifier(D : TDateTime) : LongInt;
      {-returns a modifier based on the current date}
    function GenerateMachineModifier : LongInt;
      {-returns a modifier based on hardware information}
    procedure GenerateMDKey(var Key; KeySize : Cardinal; const Str : string);
      {-generate a key based on the message digest of Str}
    procedure GenerateRandomKey(var Key; KeySize : Cardinal);
      {-generate a random key}
    function GenerateStringModifier(const S : string) : LongInt;
      {-returns a modifier based on S}
    function GenerateUniqueModifier : LongInt;
      {-returns a unique/random modifier}
    procedure SetKey(Value : TKey);                                  {!!.08}
    procedure GetKey(var Value : TKey);                              {!!.08}

  published

    {properties}
    property About : string                                          {!!.08}
      read GetAbout                                                  {!!.08}
      write SetAbout                                                 {!!.08}
      stored False;

    property KeyFileName : string
      read FKeyFileName
      write FKeyFileName;

    property KeyType : TKeyType
      read FKeyType
      write FKeyType
      default DefKeyType;

    property ShowHints : Boolean
      read FShowHints
      write FShowHints
      default False;
  end;

  TOgDateCode = class(TOgCodeBase)
  public
    function CheckCode(Report : Boolean) : TCodeStatus;
      override;
    function GetValue : TDateTime;
      {-return expiration date (0 for error)}

  published
    {properties}
    property Code
      stored FStoreCode;

    property StoreCode
      default DefStoreCode;
  end;

  TOgDaysCode = class(TOgCodeBase)
  protected {private}
    {property variables}
    FAutoDecrease : Boolean;

    {event variables}
    FOnChangeCode : TChangeCodeEvent;

  protected
    procedure Loaded;
      override;

    procedure DoOnChangeCode(Value : TCode);
      dynamic;

  public
    constructor Create(AOwner : TComponent);
      override;
    function CheckCode(Report : Boolean) : TCodeStatus;
      override;
    procedure Decrease;
      {-reduce days and generate modified code}
    function GetValue : LongInt;
      {-return number of days remaining}

  published
    {properties}
    property AutoDecrease : Boolean
      read FAutoDecrease
      write FAutoDecrease
      default DefAutoDecrease;

    {events}
    property OnChangeCode : TChangeCodeEvent
      read FOnChangeCode
      write FOnChangeCode;
  end;

  TOgRegistrationCode = class(TOgCodeBase)
  protected {private}
    {property variables}
    FRegString      : string;
    FStoreRegString : Boolean;

    {event variables}
    FOnGetRegString : TGetRegStringEvent;

  protected
    function DoOnGetRegString : string;
      dynamic;

  public
    constructor Create(AOwner : TComponent);
      override;

    function CheckCode(Report : Boolean) : TCodeStatus;
      override;

  published
    {properties}
    property Code
      stored FStoreCode;

    property StoreCode
      default DefStoreCode;

    property RegString : string
      read FRegString
      write FRegString
      stored FStoreRegString;

    property StoreRegString : Boolean
      read FStoreRegString
      write FStoreRegString
      default DefStoreRegString;

    {events}
    property OnGetRegString : TGetRegStringEvent
      read FOnGetRegString
      write FOnGetRegString;
  end;

  TOgSerialNumberCode = class(TOgCodeBase)
  public
    function CheckCode(Report : Boolean) : TCodeStatus;
      override;
    function GetValue : LongInt;
      {-return serial number (0 for error)}

  published
    {properties}
    property Code
      stored FStoreCode;

    property StoreCode
      default DefStoreCode;

  end;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久电影网站中文字幕| 欧美变态tickling挠脚心| 欧美高清www午色夜在线视频| 欧美大片国产精品| 一区二区三区91| 高清不卡一二三区| 欧美精品一区二区三区高清aⅴ| 一区二区三区丝袜| 成人综合激情网| 欧美精品一区二区在线播放| 日日摸夜夜添夜夜添精品视频| 99v久久综合狠狠综合久久| 欧美精品一区二区三区高清aⅴ| 午夜精品久久久久久久久久久| 91视频观看免费| 中文字幕在线不卡一区| 风流少妇一区二区| 欧美美女喷水视频| 亚洲一卡二卡三卡四卡无卡久久| 9l国产精品久久久久麻豆| 久久日一线二线三线suv| 久久99国产精品久久| 欧美一级高清片| 日韩激情视频网站| 91精品蜜臀在线一区尤物| 亚洲综合色在线| 欧美日免费三级在线| 亚洲免费三区一区二区| 91麻豆精东视频| 一个色综合av| 欧美日韩国产乱码电影| 午夜在线成人av| 9191成人精品久久| 日本视频免费一区| 欧美xxxxxxxxx| 国产一区999| 中文字幕免费不卡| 一本一道综合狠狠老| 亚洲精品日韩综合观看成人91| 色狠狠色狠狠综合| 日本在线不卡视频| 精品国偷自产国产一区| 国产一区二区久久| 国产精品久久99| 色综合久久综合| 石原莉奈在线亚洲三区| 日韩一区二区不卡| 国产91精品露脸国语对白| 自拍偷拍亚洲欧美日韩| 欧美日韩专区在线| 精品综合久久久久久8888| 国产亲近乱来精品视频| 91热门视频在线观看| 日韩精品一级二级| 国产拍揄自揄精品视频麻豆| caoporn国产一区二区| 亚洲国产视频一区| 91精品国产综合久久精品app| 九一九一国产精品| 中文字幕一区二区三中文字幕| 欧美在线观看视频一区二区三区| 欧美日韩电影一区| 国产精品久久夜| 欧洲人成人精品| 国产综合久久久久影院| 一级日本不卡的影视| 欧美一级xxx| 91美女在线观看| 精品一区二区综合| 一级日本不卡的影视| 久久久久国产精品麻豆| 欧美色区777第一页| 国产91高潮流白浆在线麻豆| 日韩精品三区四区| 亚洲色图色小说| 26uuu精品一区二区在线观看| 色爱区综合激月婷婷| 国产精品一区二区在线看| 视频一区视频二区中文字幕| 亚洲欧美综合网| 久久精品一二三| 日韩一区二区三| 欧美午夜精品久久久久久超碰 | 日韩一区二区精品葵司在线| 99久久夜色精品国产网站| 青椒成人免费视频| 亚洲视频每日更新| 久久精品视频免费| 日韩欧美色综合| 欧美美女视频在线观看| 91丨porny丨户外露出| 国产一区在线看| 免费观看日韩av| 日韩高清不卡一区| 亚洲影院久久精品| 亚洲同性gay激情无套| 国产日产欧产精品推荐色| 日韩精品一区二区三区视频在线观看 | 99vv1com这只有精品| 国产麻豆视频精品| 韩国理伦片一区二区三区在线播放 | 最新久久zyz资源站| 久久久久久久网| 日韩精品一区在线| 日韩精品一区二| 日韩网站在线看片你懂的| 6080日韩午夜伦伦午夜伦| 欧美主播一区二区三区| 91激情五月电影| 色欧美乱欧美15图片| 91精彩视频在线| 在线视频一区二区三区| 色爱区综合激月婷婷| 在线观看一区不卡| 精品视频全国免费看| 欧美妇女性影城| 欧美一区二区日韩| 欧美大片在线观看| 国产偷国产偷精品高清尤物| 欧美高清在线一区| 亚洲视频中文字幕| 亚洲黄色免费网站| 三级不卡在线观看| 国产一区二区影院| 岛国一区二区在线观看| 91影院在线观看| 在线免费观看成人短视频| 欧美二区三区91| 久久综合九色综合欧美98| 国产欧美一区二区三区网站| 综合久久一区二区三区| 亚洲一二三四在线| 日本不卡一二三| 国产精品66部| 色综合咪咪久久| 91精品国产一区二区人妖| 久久久精品国产免费观看同学| 国产精品大尺度| 亚洲成人免费电影| 国产毛片精品视频| 91精品1区2区| 欧美精品一区二区三区久久久| 中文天堂在线一区| 亚洲va在线va天堂| 国产精品一区二区不卡| 一本大道av伊人久久综合| 欧美一区二区人人喊爽| 国产日韩精品一区二区浪潮av| 亚洲乱码精品一二三四区日韩在线| 五月天久久比比资源色| 福利电影一区二区三区| 欧美精品丝袜久久久中文字幕| 国产亚洲一本大道中文在线| 亚洲午夜影视影院在线观看| 精品在线你懂的| 欧美综合在线视频| 国产亚洲成av人在线观看导航| 亚洲午夜国产一区99re久久| 激情小说亚洲一区| 欧美日韩久久久一区| 中文字幕av不卡| 免费三级欧美电影| 欧洲av一区二区嗯嗯嗯啊| 久久色视频免费观看| 首页综合国产亚洲丝袜| 不卡欧美aaaaa| 精品国产91久久久久久久妲己| 亚洲黄色小说网站| 成人福利在线看| 精品入口麻豆88视频| 午夜欧美一区二区三区在线播放| 成人永久aaa| 精品99一区二区三区| 日本美女一区二区| 欧美日韩你懂的| 亚洲综合免费观看高清完整版 | 欧美日韩高清不卡| 亚洲男人的天堂网| 成人av在线播放网站| 久久青草国产手机看片福利盒子 | 91免费在线视频观看| 国产欧美一区视频| 国产一区二区三区精品视频| 在线不卡的av| 亚洲综合在线电影| 一本到三区不卡视频| 亚洲欧洲av另类| zzijzzij亚洲日本少妇熟睡| 国产午夜久久久久| 国产精品99久久久久久久女警| 2020国产精品| 国产一区二区三区四区五区入口 | 国产乱妇无码大片在线观看| 91精品欧美综合在线观看最新| 亚洲第一狼人社区| 欧美人与性动xxxx| 日本欧洲一区二区| 日韩精品一区二区三区视频播放| 久久激五月天综合精品| 精品日韩成人av|