![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Отключение/включение клавиатуры
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]А как команду на включение потом дашь?