Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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]

Странно....

Проверки ради решил проверить с клавишей Win

procedure 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
15-1235747643
easy
2009-02-27 18:14
2009.05.03
Программер спит


15-1235925203
kami
2009-03-01 19:33
2009.05.03
Потери скорости при соединении через несколько модемов


15-1235943001
Юрий
2009-03-02 00:30
2009.05.03
С днем рождения ! 2 марта 2009 понедельник


2-1237800927
Iriss
2009-03-23 12:35
2009.05.03
InputBox


2-1237363573
Darvin
2009-03-18 11:06
2009.05.03
Состояние буфера СОМ порта