08.01.2007, 06:02
общий
это ответ
Здравствуйте, Танасюк Олег Олегович!
Код для включения-выключения того и другого в приложении.
Приложение:
unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1: TForm1; m_OldMHook: HHook = 0; k_OldKBHook: HHook = 0; function KbHook(code: Integer; wparam: Word; lparam: LongInt): LongInt; stdcall;procedure KeyBoardOn;procedure KeyBoardOff;function MouseHook(code: Integer; wparam: Word; lparam: LongInt): LongInt; stdcall;procedure MOUSEON;procedure MouseOff;implementation{$R *.dfm}function KbHook(code: Integer; wparam: Word; lparam: LongInt): LongInt; stdcall;begin if code < 0 then Result := CallNextHookEx(k_oldKbHook, code, wparam, lparam) else Result := 1;end;// включение клавыprocedure KeyBoardOn;begin if k_OldKbHook <> 0 then begin UnHookWindowshookEx(k_OldKbHook); k_OldKbHook := 0; end;end;// выключение клавыprocedure KeyBoardOff;begin k_OldKbHook := SetWindowsHookEx(WH_KEYBOARD, @KbHook, HInstance, 0);end;function MouseHook(code: Integer; wparam: Word; lparam: LongInt): LongInt; stdcall;begin if code < 0 then Result := CallNextHookEx(m_oldMHook, code, wparam, lparam) else Result := 1;end;// включение мышкиprocedure MOUSEON;begin if m_OldMHook <> 0 then begin UnHookWindowshookEx(m_OldMHook); m_OldMHook := 0; end;end;// выключение мышкиprocedure MouseOff;begin m_OldMHook := SetWindowsHookEx(WH_MOUSE, @MOUSEHook, HInstance, 0);end;procedure TForm1.Button1Click(Sender: TObject);beginKeyBoardOn;end;procedure TForm1.Button2Click(Sender: TObject);beginKeyBoardOFF;end;procedure TForm1.Button3Click(Sender: TObject);begin MouseOn;end;procedure TForm1.Button4Click(Sender: TObject);begin MouseOff;end;end.