Содержание материала

 

Project:

 

Code:

unit Unit1;

 

interface

 

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Menus, StdCtrls;

 

type

MyProcType = procedure (Flag: Boolean); stdcall;

 

type

TForm1 = class(TForm)

   Button1: TButton;

   Button2: TButton;

   procedure FormMouseDown(Sender: TObject; Button: TMouseButton;

     Shift: TShiftState; X, Y: Integer);

   procedure Button1Click(Sender: TObject);

   procedure Button2Click(Sender: TObject);

   procedure FormDestroy(Sender: TObject);

private

   { Private declarations }

public

   { Public declarations }

end;

 

var

Form1: TForm1;

HDLL:HWND;

 

implementation

 

{$R *.dfm}

 

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

IF Button=mbRight then ShowMessage('Right mouse key pressed');

end;

 

procedure TForm1.Button1Click(Sender: TObject);

Var Hook: MyProcType;

Begin

@Hook:=nil;

HDLL:=LoadLibrary(PChar('project2.dll'));

IF HDLL>HINSTANCE_ERROR then          

Begin

  @Hook:=GetProcAddress(HDLL,'Hook'); 

  Hook(True);

End else MessageDlg('Ошибка загрузки DLL.',mtError,[mbIgnore],0);

end;

 

procedure TForm1.Button2Click(Sender: TObject);

Var Hook: MyProcType;

Begin

@Hook:=nil;

IF HDLL>HINSTANCE_ERROR then

Begin                                  

  @Hook:=GetProcAddress(HDLL,'Hook'); 

  Hook(False);                       

End;

End;

 

procedure TForm1.FormDestroy(Sender: TObject);

begin

Button2.Click;

end;

 

end.

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить