Включение/выключение клавиатуры
Некоторое время назад передо мной встала задача создать процедуру для отключения/включения клавиатуры. Я использовал один из Ваших "Советов" и исходники компонента, который нашел в Интернете, но, к сожалению, не знаю автора и его кординат. Вот основные выдержки из того, что получилось у меня в итоге. Думаю, тут нет ничего сложного.
// используемые переменные
var
impementation
function KbHook( code: Integer; wparam: Word; lparam: LongInt ): LongInt; stdcall;
begin
// включение клавы
procedure TForm1.KeyBoardOn(Sender: TObject);
begin
// выключение клавы
procedure TForm1.KeyBoardOff(Sender: TObject);
begin
Некоторые замечания по поводу этих процедур:
- Если программу упаковать UPX-ом - клава не будет отключаться (причин не знаю).
- В ДОС-окне клава будет работать (FAR, VC и т.п.) :(
- Состояния клавиш NumLock,CapsLock,ScrollLock не отслеживаются и могут быть изменены.
- Возможно EnableHardwareKeyboard более эффективен и прост, но я тоже, к сожалению, не знаю, как им пользоваться.
- Если вместо WH_KEYBOARD поставить WH_MOUSE, то можно выключать таким образом мышь :-)