Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Отключение/включение клавиатуры


LoRd1 ©   (2007-05-19 23:11:00) 

С какой команды можно отключить клавиатуру?? (и включить)


LoRd1   (2007-05-21 01:19:00) [1]

гг, если прочитать внимательнее то можно заметить что там одна кнопка блокирует, а другая снимает блок :)))))))

но все рабно твое сообщение стоит улыбки :))))


homm   (2007-05-20 09:46:00) [2]

> Спасибо - код работает :)

Странно, а это сообщение ты как набирал? :)))


LoRd1   (2007-05-20 09:39:00) [3]

> kingsoft ©
Спасибо - код работает :)


Leonid Troyanovsky   (2007-05-20 09:19:00) [4]


> LoRd1 ©   (19.05.07 23:11)  

> С какой команды можно отключить клавиатуру?? (и включить)

http://www.podgoretsky.com/ftp/Language/nps/chaos.html

--
Regards, LVT.


Loginov Dmitry   (2007-05-20 09:16:00) [5]

> function KbHook(code: Integer; wparam: Word; lparam: LongInt)
> : LongInt; stdcall;


А че wparam не Integer? В Ран-тайме-то без разницы, выравнивание на 4 байта работает, но как-то некошерно.


Leonid Troyanovsky   (2007-05-20 09:11:00) [6]


> kingsoft ©   (20.05.07 01:36) [3]

> Вот код отключение/включение клавиатуры. Может он и не совсем
> коректный с точке зрения программирования, но за то рабочий.

Нерабочий, да, впрочем, и некорректный.

> P.S. Использовать только в благих намереньях!

Благими намерениями умощена дорога в ад.

--
Regards, LVT.


kingsoft   (2007-05-20 01:36:00) [7]


> LoRd1 ©

Вот код отключение/включение клавиатуры. Может он и не совсем коректный с точке зрения программирования, но за то рабочий.

unit Unit1;

interface

uses
 Windows;
type
 TForm1 = class(TForm)
   Button1: TButton;
   Button2: TButton;
   Edit1: TEdit;
   procedure Button1Click(Sender: TObject);
   procedure Button2Click(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;
stdcall;
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 TForm1.Button1Click(Sender: TObject);
begin
if k_OldKbHook <> 0 then
 begin
   UnHookWindowshookEx(k_OldKbHook);
   k_OldKbHook := 0;
 end;
end;
// Выключение клавиатуры
procedure TForm1.Button2Click(Sender: TObject);
begin
k_OldKbHook := SetWindowsHookEx(WH_KEYBOARD, @KbHook, HInstance, 0);
end;

end.

P.S. Использовать только в благих намереньях!


LoRd1   (2007-05-19 23:47:00) [8]

эт не важно...  но если сильно интересно - сделаю кнопку выкл и вкл (вот токо коды для этих нопок надо узнать)


Loginov Dmitry   (2007-05-19 23:42:00) [9]

А как команду на включение потом дашь?


Наверх

Титульная страница Поиск, карта сайта Написать письмо