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

 

Code:

{ *******************************************}

{ ***************** Demo   ******************}

{ *******************************************}

 

{

 

** HostApp.Exe **

HostApp.dpr

      |-----FrmMainU.pas

 

}

 

{********** Begin HostApp.dpr **************}

 

{ Project file }

 

program HostApp;

 

uses

  Forms,

  FrmMainU in 'FrmMainU.pas' {FrmMain};

 

{$R *.RES}

 

begin

  Application.Initialize;

  Application.CreateForm(TFrmMain, FrmMain);

  Application.Run;

end.

 

{********** End HostApp.dpr **************}

  

Code:

{********** Begin FrmMainU.pas **************}

 

unit FrmMainU;

 

interface

 

uses

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

  StdCtrls, ExtCtrls;

 

const

  HookDemo = 'WINHOOK.dll';

 

const

  WM_HOOKCREATE = WM_USER + 300;

 

type

  TFrmMain = class(TForm)

    Panel1: TPanel;

    BtnSetHook: TButton;

    BtnClearHook: TButton;

    procedure BtnSetHookClick(Sender: TObject);

    procedure BtnClearHookClick(Sender: TObject);

    procedure FormCreate(Sender: TObject);

  private

    FHookSet: Boolean;

    procedure EnableButtons;

  public

 

  end;

 

var

  FrmMain: TFrmMain;

 

function SetHook(WinHandle: HWND; MsgToSend: Integer): Boolean; stdcall;

  external HookDemo;

 

function FreeHook: Boolean; stdcall; external HookDemo;

 

implementation

 

{$R *.DFM}

 

procedure TFrmMain.EnableButtons;

begin

  BtnSetHook.Enabled   := not FHookSet;

  BtnClearHook.Enabled := FHookSet;

end;

 

// Start the Hook

procedure TFrmMain.BtnSetHookClick(Sender: TObject);

begin

  FHookSet := LongBool(SetHook(Handle, WM_HOOKCREATE));

  EnableButtons;

end;

 

// Stop the Hook

procedure TFrmMain.BtnClearHookClick(Sender: TObject);

begin

  FHookSet := FreeHook;

  EnableButtons;

  BtnClearHook.Enabled := False;

end;

 

procedure TFrmMain.FormCreate(Sender: TObject);

begin

  EnableButtons;

end;

 

end.

 

{********** End FrmMainU.pas **************}

 

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

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

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

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


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