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

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

?? verview.pas

?? 用來定制你的Delphi程序版本顯示和保護程序版本的構件
?? PAS
字號:
{
  TECHNISOFT Group presents:

  VERSION INFORMATION V1.3b (c) 1998 by Alexander Burlakov aka Hunter
                               E-mail: Hunter@hptmts.tvcom.ru
                               URL: http://www.chat.ru/~hunterml/

  This is freeware beta version. If you will use those components or have
  any comments, please, contact with me (E-mail: Hunter@hptmts.tvcom.ru).

  This unit contains two Delphi components:
        1. TVersionView - display program version information such as:
          - Product name;
          - Product Version;
          - Company Name and more (see below).
        2. TVersionProtect - for protecting your version inf. from changing.
            Using CRC32 control to detect all changes in FileVersionInfo
            section.

  Before using those components you must fill Version inf. on
  <Project/Options.../VersionInfo> panel at design time.

  Contents some code optimization for DELPHI 4.
}
{-$DEFINE DELPHI_4}
{NOTE: Remove "-" from previous line if you are using DELPHI 4}

unit VerView;

interface

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

const
// Version keys description
  vsCompanyName = 'CompanyName';
  vsFileDescription = 'FileDescription';
  vsInternalName = 'InternalName';
  vsLegalCopyright = 'LegalCopyright';
  vsLegalTrademarks = 'LegalTrademarks';
  vsOriginalFilename = 'OriginalFilename';
  vsProductName = 'ProductName';
  vsComments = 'Comments';

type
// Fixed File Information in Version section
   TVS_FIXEDFILEINFO = record
        dwSignature : longint;
        dwStrucVersion : longint;
        dwFileVersionMS : longint;
        dwFileVersionLS : longint;
        dwFileFlagsMask : longint;
        dwFileFlags : longint;
        dwFileOS : longint;
        dwFileType : longint;
        dwFileSubtype : longint;
        dwFileDateMS : longint;
        dwFileDateLS : longint;
   end;

  TInfoCategory = (icVersion, icShortVersion, icCompanyName,
                   icFileDescription,
                   icInternalName, icLegalCopyright,
                   icLegalTrademarks, icOriginalFilename,
                   icProductName, icComments);

// Version string viewer class definition
  TVersionView = class(TLabel)
  private
    { Private declarations }
    FVersionText : string;
    FInfoCategory: TInfoCategory;
    procedure GetPrgVer;                      // Get version number from FixedInf.
    procedure GetPrgInfo(ACategory : string); //Get all version strings
  protected
    { Protected declarations }
    function GetLabelText: string; override;
  public
    { Public declarations }
  published
    { Published declarations }
    property InfoCategory :TInfoCategory read FInfoCategory write FInfoCategory;
  end;

// Version protect class definition
  TVersionProtect = class(TComponent)
  private
    { Private declarations }
    FCheckSumm : Longint;
    FNotifyUser : boolean;
    FSaveEvent : TNotifyEvent;
  protected
    { Protected declarations }
    procedure VerifyAuthentication(Sender: TObject);
    procedure CloseProgram;
  public
    { Public declarations }
    constructor Create(AOwner : TComponent); override;
    destructor Destroy; override;
  published
    { Published declarations }
    property CheckSumm : longint read FCheckSumm write FCheckSumm;
    property NotifyUser : boolean read FNotifyUser write FNotifyUser;
// If NotifyUser property is set in True then TVersionProtect will display
// MsgBox with Error message overwise terminate without notification.
  end;

procedure Register;

implementation
var
  VerInfoPresent : boolean;
  Buf : pointer;
  Sz : word;

function SwapLong(L : longint): longint;
assembler;
asm
      rol    eax, 16;
end;

function CRC32Calc( CRC :Longint; const Data; DataLen :Longint ) :Longint;
assembler;
asm
      or     edx, edx
      je     @@exi
      jecxz  @@exi
      push   ebx
@@upd:
      movzx  ebx, al
      xor    bl, [ edx ]
      shr    eax, 8
      and    eax, 00FFFFFFh
      xor    eax, cs:[ ebx + OFFSET @@C32TT ]
      inc    edx
      loop   @@upd
      pop    ebx
@@exi:
      ret

@@C32TT:

DD 000000000h, 077073096h, 0ee0e612ch, 0990951bah
DD 0076dc419h, 0706af48fh, 0e963a535h, 09e6495a3h
DD 00edb8832h, 079dcb8a4h, 0e0d5e91eh, 097d2d988h
DD 009b64c2bh, 07eb17cbdh, 0e7b82d07h, 090bf1d91h
DD 01db71064h, 06ab020f2h, 0f3b97148h, 084be41deh
DD 01adad47dh, 06ddde4ebh, 0f4d4b551h, 083d385c7h
DD 0136c9856h, 0646ba8c0h, 0fd62f97ah, 08a65c9ech
DD 014015c4fh, 063066cd9h, 0fa0f3d63h, 08d080df5h
DD 03b6e20c8h, 04c69105eh, 0d56041e4h, 0a2677172h
DD 03c03e4d1h, 04b04d447h, 0d20d85fdh, 0a50ab56bh
DD 035b5a8fah, 042b2986ch, 0dbbbc9d6h, 0acbcf940h
DD 032d86ce3h, 045df5c75h, 0dcd60dcfh, 0abd13d59h
DD 026d930ach, 051de003ah, 0c8d75180h, 0bfd06116h
DD 021b4f4b5h, 056b3c423h, 0cfba9599h, 0b8bda50fh
DD 02802b89eh, 05f058808h, 0c60cd9b2h, 0b10be924h
DD 02f6f7c87h, 058684c11h, 0c1611dabh, 0b6662d3dh
DD 076dc4190h, 001db7106h, 098d220bch, 0efd5102ah
DD 071b18589h, 006b6b51fh, 09fbfe4a5h, 0e8b8d433h
DD 07807c9a2h, 00f00f934h, 09609a88eh, 0e10e9818h
DD 07f6a0dbbh, 0086d3d2dh, 091646c97h, 0e6635c01h
DD 06b6b51f4h, 01c6c6162h, 0856530d8h, 0f262004eh
DD 06c0695edh, 01b01a57bh, 08208f4c1h, 0f50fc457h
DD 065b0d9c6h, 012b7e950h, 08bbeb8eah, 0fcb9887ch
DD 062dd1ddfh, 015da2d49h, 08cd37cf3h, 0fbd44c65h
DD 04db26158h, 03ab551ceh, 0a3bc0074h, 0d4bb30e2h
DD 04adfa541h, 03dd895d7h, 0a4d1c46dh, 0d3d6f4fbh
DD 04369e96ah, 0346ed9fch, 0ad678846h, 0da60b8d0h
DD 044042d73h, 033031de5h, 0aa0a4c5fh, 0dd0d7cc9h
DD 05005713ch, 0270241aah, 0be0b1010h, 0c90c2086h
DD 05768b525h, 0206f85b3h, 0b966d409h, 0ce61e49fh
DD 05edef90eh, 029d9c998h, 0b0d09822h, 0c7d7a8b4h
DD 059b33d17h, 02eb40d81h, 0b7bd5c3bh, 0c0ba6cadh
DD 0edb88320h, 09abfb3b6h, 003b6e20ch, 074b1d29ah
DD 0ead54739h, 09dd277afh, 004db2615h, 073dc1683h
DD 0e3630b12h, 094643b84h, 00d6d6a3eh, 07a6a5aa8h
DD 0e40ecf0bh, 09309ff9dh, 00a00ae27h, 07d079eb1h
DD 0f00f9344h, 08708a3d2h, 01e01f268h, 06906c2feh
DD 0f762575dh, 0806567cbh, 0196c3671h, 06e6b06e7h
DD 0fed41b76h, 089d32be0h, 010da7a5ah, 067dd4acch
DD 0f9b9df6fh, 08ebeeff9h, 017b7be43h, 060b08ed5h
DD 0d6d6a3e8h, 0a1d1937eh, 038d8c2c4h, 04fdff252h
DD 0d1bb67f1h, 0a6bc5767h, 03fb506ddh, 048b2364bh
DD 0d80d2bdah, 0af0a1b4ch, 036034af6h, 041047a60h
DD 0df60efc3h, 0a867df55h, 0316e8eefh, 04669be79h
DD 0cb61b38ch, 0bc66831ah, 0256fd2a0h, 05268e236h
DD 0cc0c7795h, 0bb0b4703h, 0220216b9h, 05505262fh
DD 0c5ba3bbeh, 0b2bd0b28h, 02bb45a92h, 05cb36a04h
DD 0c2d7ffa7h, 0b5d0cf31h, 02cd99e8bh, 05bdeae1dh
DD 09b64c2b0h, 0ec63f226h, 0756aa39ch, 0026d930ah
DD 09c0906a9h, 0eb0e363fh, 072076785h, 005005713h
DD 095bf4a82h, 0e2b87a14h, 07bb12baeh, 00cb61b38h
DD 092d28e9bh, 0e5d5be0dh, 07cdcefb7h, 00bdbdf21h
DD 086d3d2d4h, 0f1d4e242h, 068ddb3f8h, 01fda836eh
DD 081be16cdh, 0f6b9265bh, 06fb077e1h, 018b74777h
DD 088085ae6h, 0ff0f6a70h, 066063bcah, 011010b5ch
DD 08f659effh, 0f862ae69h, 0616bffd3h, 0166ccf45h
DD 0a00ae278h, 0d70dd2eeh, 04e048354h, 03903b3c2h
DD 0a7672661h, 0d06016f7h, 04969474dh, 03e6e77dbh
DD 0aed16a4ah, 0d9d65adch, 040df0b66h, 037d83bf0h
DD 0a9bcae53h, 0debb9ec5h, 047b2cf7fh, 030b5ffe9h
DD 0bdbdf21ch, 0cabac28ah, 053b39330h, 024b4a3a6h
DD 0bad03605h, 0cdd70693h, 054de5729h, 023d967bfh
DD 0b3667a2eh, 0c4614ab8h, 05d681b02h, 02a6f2b94h
DD 0b40bbe37h, 0c30c8ea1h, 05a05df1bh, 02d02ef8dh

end;


function TVersionView.GetLabelText: string;
begin
  if not (csDesigning in ComponentState) then
  begin
    case FInfoCategory of
      icVersion, icShortVersion : GetPrgVer;
      icCompanyName : GetPrgInfo(vsCompanyName);
      icFileDescription : GetPrgInfo(vsFileDescription);
      icInternalName : GetPrgInfo(vsInternalName);
      icLegalCopyright : GetPrgInfo(vsLegalCopyright);
      icLegalTrademarks : GetPrgInfo(vsLegalTrademarks);
      icOriginalFilename : GetPrgInfo(vsOriginalFilename);
      icProductName : GetPrgInfo(vsProductName);
      icComments : GetPrgInfo(vsComments);
    end; { CASE }
    GetLabelText := FVersionText;
  end  else GetLabelText := Caption;
end;

procedure TVersionView.GetPrgVer;
type PVerInfo = ^TVS_FIXEDFILEINFO;
var
  zKeyPath : array[0..255] of Char;
{$IFDEF DELPHI_4}
  Len : cardinal;
{$ELSE}
  Len : integer;
{$ENDIF}
  VerInfo : PVerInfo;
begin
  FVersionText := 'Unknown';
  if not VerInfoPresent then Exit;
  if VerQueryValue(Buf, StrPCopy(zKeyPath, '\'), pointer(VerInfo), Len) then
  begin
    if FInfoCategory = icVersion then
       FVersionText := 'Version '+
                      IntToStr(HIWORD(VerInfo.dwFileVersionMS))+'.'+
                      IntToStr(LOWORD(VerInfo.dwFileVersionMS))+'.'+
                      IntToStr(HIWORD(VerInfo.dwFileVersionLS))+'.'+
                      IntToStr(LOWORD(VerInfo.dwFileVersionLS))
       else FVersionText := 'Version '+
                      IntToStr(HIWORD(VerInfo.dwFileVersionMS))+'.'+
                      IntToStr(LOWORD(VerInfo.dwFileVersionMS));
  end;
end;

procedure TVersionView.GetPrgInfo;
var
  zKeyPath : array[0..255] of char;
  P : pointer;
{$IFDEF DELPHI_4}
  Len : cardinal;
{$ELSE}
  Len : integer;
{$ENDIF}
  Language : string;
begin
  FVersionText := 'Unknown';
  if not VerInfoPresent then Exit;
  if VerQueryValue(Buf, StrPCopy(zKeyPath,
     '\\VarFileInfo\\Translation'), P, Len) then
         Language := format('%.8x', [SwapLong(Longint(P^))]);
  if VerQueryValue(Buf, StrPCopy(zKeyPath,
     '\\StringFileInfo\\'+Language+'\\'+ACategory), P, Len) then
         FVersionText := StrPas(PChar(P));
end;

constructor TVersionProtect.Create(AOwner : TComponent);
begin
  inherited Create(AOwner);
  FNotifyUser := true;
  if not (csDesigning in ComponentState) and (Owner is TForm) then
  begin
    FSaveEvent := TForm(Owner).OnActivate;
    TForm(Owner).OnActivate := VerifyAuthentication;
  end;
  if not (Owner is TForm) then
    MessageDlg('TVersionProtect must be placed on TForm object only.',
                mtInformation,   [mbOk], 0);
end;

destructor TVersionProtect.Destroy;
begin
  if not (csDesigning in ComponentState) and (Owner is TForm) then
     if Assigned(FSaveEvent) then TForm(Owner).OnActivate := FSaveEvent;
  inherited Destroy;
end;

procedure TVersionProtect.CloseProgram;
begin
  if FNotifyUser then MessageDlg('Authentication verifing error.'#13+
             'Contact with your software distributor.', mtError,
             [mbOk], 0);
  Application.Terminate;
end;

procedure TVersionProtect.VerifyAuthentication;
label StopExecution;
var L : longint;
begin
  if (csDesigning in ComponentState) then Exit;
  if FCheckSumm = 0 then
  begin
    if not VerInfoPresent then
    begin
      MessageDlg('TVersionProtect has detected that you don'+
                 #146't include the version information in '+
                 'your project. TVersionProtect is not needed.',
                  mtInformation, [mbOk], 0);
      if Assigned(FSaveEvent) then FSaveEvent(Sender);
      Free;
      Exit;
    end;
    CheckSumm := CRC32Calc($FFFFFFFF, Buf^, Sz);
    MessageDlg(format('TVersionProtect is added into project but '+
               'CheckSumm property does not set.'#13+
               'Version information checksumm is :'#09+
               '$%.8x.'#13'Please, add this value into '+
               'CheckSumm property to protect your program.',
                [FCheckSumm]), mtInformation, [mbOk], 0);
  end else
  begin
    if not VerInfoPresent then CloseProgram;
    L := CRC32Calc($FFFFFFFF, Buf^, Sz);
    if L <> FCheckSumm then CloseProgram; { general checking }
  end;
StopExecution:
  if Assigned(FSaveEvent) then FSaveEvent(Sender);
end;

procedure Register;
begin
  RegisterComponents('Technisoft', [TVersionView]);
  RegisterComponents('Technisoft', [TVersionProtect]);
end;

var
  zSelfPath : array[0..255] of char;
  L : longint;
initialization
begin
  VerInfoPresent := false;
  Sz := GetFileVersionInfoSize(StrPCopy(zSelfPath, ParamStr(0)), L);
  GetMem(Buf, Sz);
  if (Sz > 0) and GetFileVersionInfo(StrPCopy(zSelfPath, ParamStr(0)), 0, Sz, Buf) then
      VerInfoPresent := true;
end;

finalization
begin
  FreeMem(Buf, Sz);
end;
end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品一区二区91| 成人动漫中文字幕| 国产精品18久久久久久vr| 91在线精品一区二区| 欧美一级一区二区| 亚洲一区二区av在线| 成人小视频在线| 久久色.com| 蜜臀国产一区二区三区在线播放| 91色.com| 中文无字幕一区二区三区 | 男女激情视频一区| 成人一级黄色片| 精品国产精品网麻豆系列| 香蕉乱码成人久久天堂爱免费| 成人黄色国产精品网站大全在线免费观看| 91精品午夜视频| 亚洲国产综合在线| 91国在线观看| 亚洲欧美激情视频在线观看一区二区三区 | 亚洲欧洲日韩在线| 国产91精品一区二区麻豆亚洲| 26uuu国产一区二区三区| 婷婷国产在线综合| 欧美日韩视频在线观看一区二区三区| 亚洲男人的天堂av| 91玉足脚交白嫩脚丫在线播放| 国产欧美一区二区精品久导航| 国产自产视频一区二区三区| 欧美一级黄色片| 青青草国产成人av片免费| 欧美日韩一区二区在线观看视频| 亚洲已满18点击进入久久| 91国产视频在线观看| 一区二区三区欧美日| 91国偷自产一区二区三区成为亚洲经典| 亚洲四区在线观看| 一本色道**综合亚洲精品蜜桃冫| 亚洲欧美激情小说另类| 91国在线观看| 男男视频亚洲欧美| 日韩欧美国产麻豆| 国产成人一级电影| 中文字幕日韩av资源站| 色视频欧美一区二区三区| 亚洲一区欧美一区| 日韩一区二区免费视频| 精品一区二区免费| 中文字幕视频一区二区三区久| 99国产精品视频免费观看| 亚洲综合视频在线观看| 欧美肥妇bbw| 国产麻豆成人精品| 日韩一区在线免费观看| 欧美少妇bbb| 国内精品视频一区二区三区八戒| 欧美国产在线观看| 欧美撒尿777hd撒尿| 久久成人免费网站| 成人欧美一区二区三区白人| 欧洲日韩一区二区三区| 美国欧美日韩国产在线播放| 中文字幕av资源一区| 欧美色图激情小说| 国产一区二区三区在线观看免费视频 | 欧美日韩中文一区| 久久99在线观看| 亚洲免费观看高清完整| 91精品国产麻豆| 成人高清免费观看| 免费高清成人在线| 亚洲色欲色欲www| 欧美一区二区视频在线观看| 丰满少妇久久久久久久| 亚洲成人免费看| 国产精品你懂的在线欣赏| 欧美一区午夜精品| 91麻豆福利精品推荐| 狠狠网亚洲精品| 亚洲一区二区黄色| 日韩中文字幕亚洲一区二区va在线 | 国产女同互慰高潮91漫画| 欧美亚男人的天堂| 成人在线视频一区| 奇米影视一区二区三区小说| 亚洲免费观看高清完整版在线| 日韩亚洲欧美在线| 欧美午夜在线观看| 成人激情黄色小说| 极品尤物av久久免费看| 亚洲一级二级在线| 亚洲蜜臀av乱码久久精品 | 91精品蜜臀在线一区尤物| 国产.欧美.日韩| 精品一区二区三区免费视频| 亚洲国产成人精品视频| 亚洲视频在线观看三级| 久久久久久久久蜜桃| 91精品国产91久久综合桃花| 在线观看国产日韩| 色婷婷综合久久久久中文 | 在线观看日韩一区| 成人app网站| 成人精品国产一区二区4080| 蜜臀精品久久久久久蜜臀| 午夜av一区二区三区| 夜夜嗨av一区二区三区| 亚洲女人****多毛耸耸8| 国产欧美精品国产国产专区| 久久日一线二线三线suv| 欧美成人a∨高清免费观看| 欧美一区二区免费视频| 欧美麻豆精品久久久久久| 在线观看一区日韩| 欧美日韩国产片| 欧美巨大另类极品videosbest | www.亚洲色图.com| 成人av集中营| 99综合电影在线视频| bt7086福利一区国产| 一本到不卡免费一区二区| 91视视频在线观看入口直接观看www | 美女精品自拍一二三四| 麻豆91免费看| 国产精品91xxx| 成人免费视频播放| 色综合色综合色综合 | 亚洲另类色综合网站| 一区二区三区.www| 午夜精品久久久久久久99樱桃| 99久久精品免费看国产免费软件| 成人av在线播放网址| 色94色欧美sute亚洲线路一久| 91猫先生在线| 欧美精品v日韩精品v韩国精品v| 制服丝袜中文字幕亚洲| xnxx国产精品| 亚洲日本在线观看| 婷婷激情综合网| 国产99久久久国产精品免费看| 成人h动漫精品一区二区| 欧美性猛交xxxx乱大交退制版| 欧美高清视频www夜色资源网| 日韩精品资源二区在线| 国产精品全国免费观看高清 | 国产在线视频精品一区| 99re6这里只有精品视频在线观看| 91福利小视频| 亚洲精品在线免费播放| 亚洲欧美日韩久久| 久久精品国产久精国产| 97精品国产97久久久久久久久久久久 | 欧美xxxx老人做受| 中文字幕一区在线观看视频| 五月婷婷另类国产| 夫妻av一区二区| 欧美二区乱c少妇| 国产精品色一区二区三区| 日日噜噜夜夜狠狠视频欧美人 | 久久国产精品第一页| 91免费国产在线观看| 欧美va天堂va视频va在线| 亚洲色图都市小说| 国模娜娜一区二区三区| 一本大道久久a久久综合| 精品国产精品网麻豆系列| 亚洲国产裸拍裸体视频在线观看乱了| 国产在线日韩欧美| 91麻豆精品91久久久久同性| 中文字幕在线一区免费| 久久精品国产秦先生| 欧美日韩亚洲综合一区| 国产精品网曝门| 久久激情五月婷婷| 欧美日韩激情一区二区三区| 成人欧美一区二区三区小说| 国产精品自拍网站| 欧美电影免费观看高清完整版在线观看 | 欧美精品一区二区三区很污很色的 | 麻豆成人av在线| 欧美精选在线播放| 亚洲日本电影在线| www.亚洲激情.com| 国产欧美一区二区精品婷婷| 激情综合色播激情啊| 欧美一区永久视频免费观看| 亚洲高清在线精品| 在线视频一区二区三| 黄色日韩三级电影| 日韩欧美卡一卡二| 麻豆国产精品一区二区三区| 欧美一区二区三区视频在线观看| 一级女性全黄久久生活片免费| 99久久免费精品| 中文字幕一区免费在线观看 | 美女视频一区在线观看| 91精品国产综合久久久久久| 亚洲超碰97人人做人人爱| 欧美午夜免费电影| 五月天一区二区三区|