Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.03.2008, 13:49   #1
RealSHELS
Форумчанин
 
Аватар для RealSHELS
 
Регистрация: 04.03.2008
Сообщений: 176
По умолчанию Клавиатура

Всем доброго времени суток.
Вопрос: можно ли програмно отключить всю клавиатуру, если можно то как, а ёще потом включить.
RealSHELS вне форума Ответить с цитированием
Старый 28.03.2008, 13:56   #2
delphin100
Он лайн
Форумчанин
 
Аватар для delphin100
 
Регистрация: 26.09.2007
Сообщений: 173
Счастье Да можно

// используемые переменные
var
Dummy: integer = 0;
OldKbHook: HHook = 0;

implementation

function KbHook(code: Integer; wparam: Word; lparam: LongInt): LongInt; stdcall;
begin
if code < 0 then
Result := CallNextHookEx(oldKbHook, code, wparam, lparam)
else
Result := 1;
end;

// включение клавы

procedure TForm1.KeyBoardOn(Sender: TObject);
begin
if OldKbHook <> 0 then
begin
UnHookWindowshookEx(OldKbHook);
OldKbHook := 0;
end;
SystemParametersInfo(SPI_SETFASTTAS KSWITCH, 0, 0, 0);
SystemParametersInfo(SPI_SCREENSAVE RRUNNING, 0, 0, 0);
end;

// выключение клавы

procedure TForm1.KeyBoardOff(Sender: TObject);
begin
SystemParametersInfo(SPI_SETFASTTAS KSWITCH, 1, @Dummy, 0);
SystemParametersInfo(SPI_SCREENSAVE RRUNNING, 1, @Dummy, 0);
OldKbHook := SetWindowsHookEx(WH_KEYBOARD, @KbHook, HInstance, 0);
end;


Некоторые замечания по поводу этих процедур:

* Если программу упаковать UPX-ом - клава не будет отключаться (причин не знаю).
* В ДОС-окне клава будет работать (FAR, VC и т.п.)
* Состояния клавиш NumLock,CapsLock,ScrollLock не отслеживаются и могут быть изменены.
* Возможно EnableHardwareKeyboard более эффективен и прост, но я тоже, к сожалению, не знаю, как им пользоваться.
* Если вместо WH_KEYBOARD поставить WH_MOUSE, то можно выключать таким образом мышь :-)

Если что пишите
delphin100 вне форума Ответить с цитированием
Старый 28.03.2008, 15:01   #3
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Если что пишите
Простите, а кому писать - вам или автору сей статьи, размещенной на ДельфиВорлд ?
Цитата:
Возможно EnableHardwareKeyboard более эффективен и прост, но я тоже, к сожалению, не знаю, как им пользоваться.
Да очень просто - указываем после нее в скобках булеву переменную и все. Но:
Цитата:
Requirements
OS Versions: Windows CE 2.0 and later.
Header: Winuser.h.
Link Library: Kbdui.lib.

Последний раз редактировалось mihali4; 28.03.2008 в 15:29.
mihali4 вне форума Ответить с цитированием
Старый 29.03.2008, 10:35   #4
delphin100
Он лайн
Форумчанин
 
Аватар для delphin100
 
Регистрация: 26.09.2007
Сообщений: 173
Сообщение

Цитата:
вам или автору сей статьи
Пишите мне что найду подскажу т.к. до автора в ДелфиВорлд врядли достучаться
Цитата:
EnableHardwareKeyboard
Из какого он модуля
Цитата:
Requirements
OS Versions: Windows CE 2.0 and later.
Header: Winuser.h.
Link Library: Kbdui.lib.
это к чему
Я совсем уже не чего не понял
delphin100 вне форума Ответить с цитированием
Старый 29.03.2008, 15:26   #5
=LeonZone=
Форумчанин
 
Аватар для =LeonZone=
 
Регистрация: 15.08.2007
Сообщений: 118
По умолчанию

Procedure BlockInput(ABlockInput : Boolean); stdcall; external 'USER32.DLL';
...
BlockInput(True); - блокируем клаву и мышь...
BlockInput(False); - разблокируем...

Только при нажатии CTRL+ALT+DELETE блокировка отключается((( Вешаем на таймер)
=LeonZone= вне форума Ответить с цитированием
Старый 29.03.2008, 15:50   #6
RealSHELS
Форумчанин
 
Аватар для RealSHELS
 
Регистрация: 04.03.2008
Сообщений: 176
По умолчанию

EnableHardwareKeyboard
Что подключать, как с ней работать
RealSHELS вне форума Ответить с цитированием
Старый 29.03.2008, 15:52   #7
RealSHELS
Форумчанин
 
Аватар для RealSHELS
 
Регистрация: 04.03.2008
Сообщений: 176
По умолчанию

=LeonZone=
Спасибо, но мышь - это уже лишнее
RealSHELS вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Экранная клавиатура aesoem Софт 9 13.03.2009 10:59
Программируемая клавиатура Valent Компьютерное железо 0 05.05.2008 04:16
Клавиатура Pusher Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 22.03.2008 00:47
Клавиатура и мышь Борис2 Паскаль, Turbo Pascal, PascalABC.NET 4 11.12.2007 23:32
клавиатура с Delphi Илюха Общие вопросы Delphi 4 04.11.2007 19:20