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