Текущий архив: 2009.05.03;
Скачать: CL | DM;
Вниз
Заблокировать Enter Найти похожие ветки
← →
DDR2 (2009-03-22 15:16) [0]Здравствуйте, Мастера!
Подскажите пожалуйста, как можно отключить клавишу ENTER?
← →
DVM © (2009-03-22 15:22) [1]
{******************************************************************************}
{* Module: DisableLowLevelKeys.cpp *}
{* Notices: Written 2000 Jeffrey Richter *}
{* *}
{* Translated by: Dmitry Muratov *}
{* 2008 *}
{******************************************************************************}
program DisableLowLevelKeys;
uses
Windows, Messages;
const
LLKHF_ALTDOWN = KF_ALTDOWN shr 8;
WH_KEYBOARD_LL = 13;
type
TKBDLLHOOKSTRUCT = record
vkCode: DWORD;
scanCode: DWORD;
flags: DWORD;
time: DWORD;
dwExtraInfo: DWORD;
end;
PKBDLLHOOKSTRUCT = ^TKBDLLHOOKSTRUCT;
var
hhkLowLevelKybd: HHOOK;
//------------------------------------------------------------------------------
function LowLevelKeyboardProc(nCode: integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
var
fEatKeystroke: boolean;
p: PKBDLLHOOKSTRUCT;
begin
fEatKeystroke := false;
if nCode = HC_ACTION then
begin
case wParam of
WM_KEYDOWN,
WM_SYSKEYDOWN,
WM_KEYUP,
WM_SYSKEYUP:
begin
p := PKBDLLHOOKSTRUCT(lParam);
fEatKeystroke := p^.vkCode = VK_RETURN;
end;
end;
end;
if fEatKeystroke then
result := 1
else
result := CallNextHookEx(0, nCode, wParam, lParam);
end;
//------------------------------------------------------------------------------
begin
// Install the low-level keyboard & mouse hooks
hhkLowLevelKybd := SetWindowsHookEx(WH_KEYBOARD_LL, LowLevelKeyboardProc, hInstance, 0);
// Keep this app running until we"re told to stop
MessageBox(0,
PChar("ENTER are now disabled." + #13#10 +
"Click "Ok" to terminate this application and re-enable these keys."),
PChar("Disable Low-Level Keys"),
MB_OK);
// Remove hooks
UnhookWindowsHookEx(hhkLowLevelKybd);
end.
← →
DDR2 (2009-03-22 15:29) [2]Спасибо большое что откликнулись! Я в этом коде почти ничего не понял:(
Я пытаюсь просто с сообщением, типа так:
if Key = VK_RETURN then
здесь каким-то образом заблокировать клавишу Enter
← →
Кролик Иа-Иа © (2009-03-22 16:01) [3]
if Key = VK_RETURN then
здесь каким-то образом заблокировать клавишу Enter
т.е Key:=0;
← →
DDR2 (2009-03-22 16:05) [4]Странно....
Проверки ради решил проверить с клавишей Winprocedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_LWIN then
Key:=0;
Меню появилось.......
← →
Palladin © (2009-03-22 16:11) [5]Что бы меню не появилосб нужно воспользоваться тем, что ты не понял.
← →
DDR2 (2009-03-22 16:15) [6]
> нужно воспользоваться тем, что ты не понял.
Вы имеете в виду код выше всех постов?
← →
Кролик Иа-Иа © (2009-03-22 16:19) [7]
> DDR2 (22.03.09 16:05) [4]
> Странно....
странно...
VK_RETURN <> VK_LWIN
← →
Palladin © (2009-03-22 16:31) [8]
> DDR2 (22.03.09 16:15) [6]
ага. ты вообще определись чего тебе надо.
← →
Palladin © (2009-03-22 16:34) [9]а то, ой, а как мне зелененький шарфик на шею натянуть...
...а красненькие перчаточки по швам трескаются, когда шарфик натягиваю и ноги мокнут...
← →
имя (2009-03-22 16:54) [10]Удалено модератором
← →
@!!ex © (2009-03-22 16:58) [11]> [2] DDR2 (22.03.09 15:29)
> Спасибо большое что откликнулись! Я в этом коде почти ничего
> не понял:(
Гугли на тему Hooks.
Если в кратце, то устанавливается ловушка на нажатие клавиш.
Проверяется, если нажатая клавиша - RETURN(тобмшь Enter), то сообщаем системе что все обработано и остальные обработчики игнорируем.
В противном случае передаем обработку дальше.
← →
Кролик Иа-Иа © (2009-03-22 16:59) [12]Удалено модератором
Страницы: 1 вся ветка
Текущий архив: 2009.05.03;
Скачать: CL | DM;
Память: 0.49 MB
Время: 0.012 c