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. |
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!