Программирование и не только

Объявление


!!

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Программирование и не только » Delphi, Kylix, Pascal » Как заблокировать клавиши на клавиатуре или мыши?


Как заблокировать клавиши на клавиатуре или мыши?

Сообщений 1 страница 6 из 6

1

Скиньте исходник или код

0

2

тебе все клавиши или какие - то конкретно?

0

3

И все и отдельно надо

0

4

вот должно помочь
:cool:

Код:
{
Модуль предназначен для осуществления частичной
 блокировки/разблокировки функций клавиатуры и мышки.
Procedure KeyBoardOn - разблокировка (включение) клавиатуры
Procedure KeyBoardOff - блокировка (выключение) клавиатуры
Procedure MouseOn - разблокировка (включение) мышки
Procedure MouseOff - блокировка (выключение) мышки


***************************************************** }

unit mklu;

interface

uses
  Windows;

var
  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

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;

end.
Пример использования: 

uses mklu;

{блокировка(LockIt = true) или разблокировка(LockIt= False) клавы}

procedure LockUnlockKeyboard(LockIt: Boolean);
begin
  if LockIt then
    KeyBoardOFF
  else
    KeyBoardOn;
end;

{блокировка(LockIt = true) или разблокировка(LockIt= False) мышки}

procedure LockUnlockMouse(LockIt: Boolean);
begin
  if LockIt then
    MouseOff
  else
    MouseOn;
end;

P.S. только я прошу тебя используй этот модуль в мирных целях! :D

+1

5

Спасибо завтра проверю

0

6

Попробуй function BlockInput(fBlock: boolean): boolean; из user32.dll. Блокирует все и сразу, но у меня в Висте почему-то были AV. Пока не разобрался, но в XP все работало на ура.
http://msdn2.microsoft.com/en-us/library/ms646290.aspx

0


Вы здесь » Программирование и не только » Delphi, Kylix, Pascal » Как заблокировать клавиши на клавиатуре или мыши?