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

📄 unit1.pas

📁 本文将介绍 JDesktop Integration Components (JDIC)
💻 PAS
字号:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Edit1: TEdit;
    Button1: TButton;
    GroupBox1: TGroupBox;
    Label2: TLabel;
    Label3: TLabel;
    Edit2: TEdit;
    Button2: TButton;
    Edit3: TEdit;
    GroupBox2: TGroupBox;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Button3: TButton;
    GroupBox3: TGroupBox;
    Label7: TLabel;
    Label8: TLabel;
    Button4: TButton;
    RSA_NEdit: TEdit;
    RSA_DEdit: TEdit;
    Button5: TButton;
    OpenDialog1: TOpenDialog;
    GroupBox4: TGroupBox;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Edit9: TEdit;
    Edit10: TEdit;
    Edit11: TEdit;
    Button6: TButton;
    Button7: TButton;
    Button8: TButton;
    Label12: TLabel;
    Label13: TLabel;
    RSA_InputStr: TEdit;
    RSA_OutputStr: TEdit;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
{ 取得硬盘序列号 }
Var
  hLib : HMODULE;
  GetHardDiskId : function (lpOutBuffer:PChar; lpRegisterCode:PChar): Boolean;  stdcall;
  DiskID: array [0..31] of char;
begin
  FillChar(DiskID, SizeOf(DiskID), #0);
  hLib := LoadLibrary('reg.dll');

  if hLib <> 0 then
  begin
    @GetHardDiskId := GetProcAddress(hLib, 'GetHardDiskId');

    if @GetHardDiskId <> nil then
    begin
      if GetHardDiskId(DiskID, 'USER-123456789') then
        Edit1.Text := DiskID
      else
        ShowMessage('Error!');
    end
    else
      ShowMessage(' 加载功能模块出错! ');

    FreeLibrary(hLib);
  end
  else
    ShowMessage(' 无法加载DLL! ');
end;

procedure TForm1.Button2Click(Sender: TObject);
{ MD5 加密}
Var
  hLib : HMODULE;
  MD5Encrypt : function (lpInBuffer:PChar; lpOutBuffer:PChar; length:integer; lpRegisterCode:PChar): Boolean; stdcall;
  OutputStr: array [0..33] of char;
begin
  FillChar(OutputStr, SizeOf(OutputStr), #0);
  hLib := LoadLibrary('reg.dll');

  if hLib <> 0 then
  begin
    @MD5Encrypt := GetProcAddress(hLib, 'MD5Encrypt');

    if @MD5Encrypt <> nil then
    begin
      if MD5Encrypt(PChar(Edit2.Text), OutputStr, length(Edit2.Text), 'USER-123456789') then
        Edit3.Text := OutputStr
      else
        ShowMessage('Error!');
    end
    else
      ShowMessage(' 加载功能模块出错! ');

    FreeLibrary(hLib);
  end
  else
    ShowMessage(' 无法加载DLL! ');
end;

procedure TForm1.Button3Click(Sender: TObject);
{ BlowFish 加密 }
Var
  hLib : HMODULE;
  BlowFishEncrypt : function (lpInBuffer:PChar; lpKey:PChar; lpOutBuffer:PChar; lpRegisterCode:PChar): Boolean; stdcall;
  OutputStr: array [0..200] of char;
begin
  FillChar(OutputStr, SizeOf(OutputStr), #0);
  hLib := LoadLibrary('reg.dll');

  if hLib <> 0 then
  begin
    @BlowFishEncrypt := GetProcAddress(hLib, 'BlowFishEncrypt');

    if @BlowFishEncrypt <> nil then
    begin
      if BlowFishEncrypt(PChar(Edit4.Text), PChar(Edit5.Text), OutputStr, 'USER-123456789') then
        Edit6.Text := OutputStr
      else
        ShowMessage('Error!');
    end
    else
      ShowMessage(' 加载功能模块出错! ');

    FreeLibrary(hLib);
  end
  else
    ShowMessage(' 无法加载DLL! ');
end;

procedure TForm1.Button5Click(Sender: TObject);
{ RSA解密 }
Var
  hLib : HMODULE;
  RSADecrypt : function (lpInBuffer:PChar; lpNStr:PChar; Mode:integer; lpOutBuffer:PChar; lpRegisterCode:PChar): Boolean; stdcall;
  OutputStr: array [0..500] of char;
begin
  FillChar(OutputStr, SizeOf(OutputStr), #0);
  hLib := LoadLibrary('reg.dll');

  if hLib <> 0 then
  begin
    @RSADecrypt := GetProcAddress(hLib, 'RSADecrypt');

    if @RSADecrypt <> nil then
    begin
      {下面演示代码“加密模式”参数使用Mode0,因此输入参数请使用128bit的N、D参数。}
      if RSADecrypt(PChar(RSA_OutputStr.Text), PChar(RSA_NEdit.Text), 0, OutputStr, 'USER-123456789') then
        RSA_OutputStr.Text := OutputStr
      else
        ShowMessage('Error!');
    end
    else
      ShowMessage(' 加载功能模块出错! ');

    FreeLibrary(hLib);
  end
  else
    ShowMessage(' 无法加载DLL! ');
end;

procedure TForm1.Button4Click(Sender: TObject);
{ RSA加密 }
Var
  hLib : HMODULE;
  RSAEncrypt : function (lpInBuffer:PChar; lpDStr:PChar; lpNStr:PChar; Mode:integer; lpOutBuffer:PChar; lpRegisterCode:PChar): Boolean; stdcall;
  OutputStr: array [0..500] of char;

begin
  FillChar(OutputStr, SizeOf(OutputStr), #0);
  hLib := LoadLibrary('reg.dll');

  if hLib <> 0 then
  begin
    @RSAEncrypt := GetProcAddress(hLib, 'RSAEncrypt');

    if @RSAEncrypt <> nil then
    begin
      {下面演示代码“加密模式”参数使用Mode0,因此输入参数请使用128bit的N、D参数。}
      if RSAEncrypt(PChar(RSA_InputStr.Text), PChar(RSA_DEdit.Text), PChar(RSA_NEdit.Text), 0, OutputStr, 'USER-123456789') then
        RSA_OutputStr.Text := OutputStr
      else
        ShowMessage('Error!');
    end
    else
      ShowMessage(' 加载功能模块出错! ');

    FreeLibrary(hLib);
  end
  else
    ShowMessage(' 无法加载DLL! ');
end;

procedure TForm1.Button6Click(Sender: TObject);
{ EncryptStringFun1 加密 }
Var
  hLib : HMODULE;
  EncryptStringFun1 : function (lpInBuffer:PChar; lpKey:PChar; lpOutBuffer:PChar; lpRegisterCode:PChar): Boolean; stdcall;
  OutputStr: array [0..1024] of char;

begin
  FillChar(OutputStr, SizeOf(OutputStr), #0);
  hLib := LoadLibrary('reg.dll');

  if hLib <> 0 then
  begin
    @EncryptStringFun1 := GetProcAddress(hLib, 'EncryptStringFun1');

    if @EncryptStringFun1 <> nil then
    begin
      if EncryptStringFun1(PChar(Edit9.Text), PChar(Edit10.Text), OutputStr, 'USER-123456789') then
        Edit11.Text := OutputStr
      else
        ShowMessage('Error!');
    end
    else
      ShowMessage(' 加载功能模块出错! ');

    FreeLibrary(hLib);
  end
  else
    ShowMessage(' 无法加载DLL! ');
 end;

procedure TForm1.Button7Click(Sender: TObject);
{ EncryptStringFun1 解密 }
Var
  hLib : HMODULE;
  DecryptStringFun1 : function (lpInBuffer:PChar; lpKey:PChar; lpOutBuffer:PChar; lpRegisterCode:PChar): Boolean; stdcall;
  OutputStr: array [0..1024] of char;
begin
  FillChar(OutputStr, SizeOf(OutputStr), #0);
  hLib := LoadLibrary('reg.dll');

  if hLib <> 0 then
  begin
    @DecryptStringFun1 := GetProcAddress(hLib, 'DecryptStringFun1');

    if @DecryptStringFun1 <> nil then
    begin
      if DecryptStringFun1(PChar(Edit11.Text), PChar(Edit10.Text), OutputStr, 'USER-123456789') then
        Edit9.Text := OutputStr
      else
        ShowMessage('Error!');
    end
    else
      ShowMessage(' 加载功能模块出错! ');

    FreeLibrary(hLib);
  end
  else
    ShowMessage(' 无法加载DLL! ');
end;

procedure TForm1.Button8Click(Sender: TObject);
{ BlowFish 解密 }
Var
  hLib : HMODULE;
  BlowFishDecrypt : function (lpInBuffer:PChar; lpKey:PChar; lpOutBuffer:PChar; lpRegisterCode:PChar): Boolean; stdcall;
  OutputStr: array [0..200] of char;
begin
  FillChar(OutputStr, SizeOf(OutputStr), #0);
  hLib := LoadLibrary('reg.dll');

  if hLib <> 0 then
  begin
    @BlowFishDecrypt := GetProcAddress(hLib, 'BlowFishDecrypt');

    if @BlowFishDecrypt <> nil then
    begin
      if BlowFishDecrypt(PChar(Edit6.Text), PChar(Edit5.Text), OutputStr, 'USER-123456789') then
        Edit4.Text := OutputStr
      else
        ShowMessage('Error!');
    end
    else
      ShowMessage(' 加载功能模块出错! ');

    FreeLibrary(hLib);
  end
  else
    ShowMessage(' 无法加载DLL! ');
end;

end.

⌨️ 快捷键说明

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