Отлавливаем нажатие калавиш клавиатуры.

Опубиковано: 08.06.2008 г., автор: , просмотров: 85664

    Уроки програмирования на языке Delphi.

    В этом коротком уроке я покажу вам, как перехватывать нажатия кнопок клавиатуры. Пригодиться он для написания простенького клавиатурного шпиона, который бы отлавливал нажатия клавиш и вёл лог. Можно написать просто небольшой прикол типа если пользователь нажимает клавишу "Ф" то на экране появляется "И". Короче я думаю фантазия у вас работает нормально поэтому применение этому коду вы найдете.

    Начинаем кодить, нам понадобиться: Компонент Timer с закладки System и компонент Label с закладки Standart. Выделяем Timer, создаем, обработчик событий OnTime и прописываем в нем следующий код:

    if getasynckeystate($1b)<>0 then
    Label1.Caption:='Вы нажали ESC'

    Вот что должно получиться:

    procedure TForm1.Timer1Timer(Sender: TObject);
    begin
    if getasynckeystate($1b)<>0 then
    Label1.Caption:='Вы нажали ESC'
    end;

    В данном примере мы перехватываем нажатие клавиши ESC во всем Windows и побарабану активна или нет наша программа. Используем мы здесь Api функцию getasynckeystate, в качестве параметра ей нужно указать виртуальный код клавиши, котрую хотим отлавливать. В нашем случае это Esc виртуальный код $1b. Все виртуальные коды клавиш приведены ниже:

    Да чуть не забыл, свойство Interval у компонента Timer меняем на 1

    vk_lbutton = $01;
    vk_rbutton = $02;
    vk_cancel = $03;
    vk_mbutton = $04;
    vk_back = $08;
    vk_tab = $09;
    vk_clear = $0c;
    vk_return = $0d;
    vk_shift = $10;
    vk_control = $11;
    vk_menu = $12;
    vk_pause = $13;
    vk_capital = $14;
    vk_escape = $1b;
    vk_space = $20;
    vk_prior = $21;
    vk_next = $22;
    vk_end = $23;
    vk_home = $24;
    vk_left = $25;
    vk_up = $26;
    vk_right = $27;
    vk_down = $28;
    vk_select = $29;
    vk_print = $2a;
    vk_execute = $2b;
    vk_snapshot = $2c;
    vk_insert = $2d;
    vk_delete = $2e;
    vk_help = $2f;
    >> vk_a - vk_z такие же, как и их ascii-эквиваленты: 'a' - 'z' ($41 - $5A)<<
    >> vk_0 - vk_9 такие же, как и их ascii-эквиваленты: '0' - '9' ($30 - $39)}
    vk_numpad0 = $60;
    vk_numpad1 = $61;
    vk_numpad2 = $62;
    vk_numpad3 = $63;
    vk_numpad4 = $64;
    vk_numpad5 = $65;
    vk_numpad6 = $66;
    vk_numpad7 = $67;
    vk_numpad8 = $68;
    vk_numpad9 = $69;
    vk_multiply = $6a;
    vk_add = $6b;
    vk_separator = $6c;
    vk_subtract = $6d;
    vk_decimal = $6e;
    vk_divide = $6f;
    vk_f1 = $70;
    vk_f2 = $71;
    vk_f3 = $72;
    vk_f4 = $73;
    vk_f5 = $74;
    vk_f6 = $75;
    vk_f7 = $76;
    vk_f8 = $77;
    vk_f9 = $78;
    vk_f10 = $79;
    vk_f11 = $7a;
    vk_f12 = $7b;
    vk_f13 = $7c;
    vk_f14 = $7d;
    vk_f15 = $7e;
    vk_f16 = $7f;
    vk_f17 = $80;
    vk_f18 = $81;
    vk_f19 = $82;
    vk_f20 = $83;
    vk_f21 = $84;
    vk_f22 = $85;
    vk_f23 = $86;
    vk_f24 = $87;
    vk_numlock = $90;
    vk_scroll = $91;

    До встречи www.delphiexpert.ru



    Похожие материалы

    Последние из рубрики

    Витя 19 Sep 2020 в 09:19 #
    А как отследить нажатие Enter ?
    Перезвоните 21 Dec 2018 в 18:03 #
    Перезвоните мне пожалуйста 8 (499) 322-46-85 Михаил
    Как интересно можно провести время? 03 Oct 2017 в 05:25 #
    Приветики мальчики и девочки. А как интересно Вы
    проводите своё свободное время?
    Мы платим за лайки! - Выплаты по требованию! 17 May 2017 в 12:25 #
    Наш сервис предоставляет настоящие лайки на фотографии заказчиков, которые готовы платить за качество.

    Именно для этого мы и набираем удалённых сотрудников, которые будут выполнять работу, то есть ставить лайки и получить за это деньги.

    Чтобы стать нашим удалённым сотрудником и начать ставить лайки, зарабатывая при этом 45 рублей за 1 поставленный лайк,

    достаточно просто зарегистрироваться на нашем сервисе. > oplata-vklike.tk <

    Вывод заработанных средств ежедневно в течении нескольких минут.
    Mina inlägg fungera 18 Mar 2017 в 06:30 #
    Mina inlägg fungerar inte alls :S När jag skriver nya sÃ¥ fungerar de inte att hitta dom de länkas tillbaka till min första sida pÃ¥ bloggen de blir sÃd¤:hrÃ¥en länkar till samma sida somman har pÃ¥ första sidan hur fixar man detta förlorar pengar pÃ¥ mina sponsrade inlägg :S

    ОтменитьДобавить комментарий