Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как перехватить Scroll Lock, События клавиатуры 
:(
    Опции темы
Akella
Дата 1.7.2003, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Как перехватить нажатие клавиши Scroll Lock на клавиатуре.
при этом программа у меня НЕАКТИВНА, свернута или находится в трее.
PM MAIL   Вверх
eof
Дата 1.7.2003, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 30.5.2003

Репутация: нет
Всего: нет



ну... Hook на клавиатуру надо поставить, наверное.
если не слышал про hook почитай в msdn про SetWindowsHookEx.
PM MAIL   Вверх
Mikel
Дата 2.7.2003, 07:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 882
Регистрация: 30.3.2002
Где: Саратов

Репутация: 1
Всего: 2



Есть в факе пример хука на клаву.
Но если с ним не хочешь возиться, то возьми GetAsyncKeyState, запихай его в таймер и смотри изменение результата.
Если я не ошибаюсь, то это выглядит так:
if GetAsyncKeyState(VK_SCROLL) and $8000
then Showmessage('Pressed');
Константу точно не помню, но поищи там где-нть есть.


--------------------
...so remember, it's better to burn out than to fade away
PM MAIL ICQ   Вверх
Akella
Дата 2.7.2003, 08:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Я и сам знаю что надо использовать SetWindowsHookEx, но как и с какими параметрами?confused.gif?
PM MAIL   Вверх
eof
Дата 2.7.2003, 09:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 30.5.2003

Репутация: нет
Всего: нет



очень кратко, только принцип:
1. создаешь длл в которой делаешь процедуру типа KeyboardProc (см. MSDN если нет то дельфевый хелп "Pen API Programmer's Reference").
2. пишешь проект в котором выполниешь:
SetWindowsHookEx(WH_KEYBOARD (константа)
,указатель на процедуру (из длл)
,Handle длл
,0).


PM MAIL   Вверх
lider07
Дата 2.7.2003, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 11.6.2003
Где: Бишкек

Репутация: нет
Всего: нет



А по моему вот так :IF (Key_ScrollLock) and (ssAlt in Shift) then key:=0;
PM MAIL ICQ MSN   Вверх
Mikel
Дата 2.7.2003, 10:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 882
Регистрация: 30.3.2002
Где: Саратов

Репутация: 1
Всего: 2





--------------------
...so remember, it's better to burn out than to fade away
PM MAIL ICQ   Вверх
Akella
Дата 2.7.2003, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Цитата
А по моему вот так :IF (Key_ScrollLock) and (ssAlt in Shift) then key:=0;

В вопросе я ясно обозначил, что программа НЕАКТИВНА!
PM MAIL   Вверх
lider07
Дата 2.7.2003, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 11.6.2003
Где: Бишкек

Репутация: нет
Всего: нет



Цитата
В вопросе я ясно обозначил, что программа НЕАКТИВНА!

А ты пробывал!??? :-(

PM MAIL ICQ MSN   Вверх
Akella
Дата 2.7.2003, 20:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Вообще-то нет. А в обработчик какого события засунуть эту строку?
PM MAIL   Вверх
Mikel
Дата 2.7.2003, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 882
Регистрация: 30.3.2002
Где: Саратов

Репутация: 1
Всего: 2



IF (Key=ScrollLock) and (ssAlt in Shift) then key:=0;
Это вроде бы как отключает ALt+ScrollLock(в OnKeyDown/OnKeyPressed/OnKeyUp). Но очень сомнительно, что это заработает smile.gif


--------------------
...so remember, it's better to burn out than to fade away
PM MAIL ICQ   Вверх
lider07
Дата 3.7.2003, 09:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 11.6.2003
Где: Бишкек

Репутация: нет
Всего: нет



Цитата
Вообще-то нет. А в обработчик какого события засунуть эту строку?


procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);

прям сюда!

Это сообщение отредактировал(а) lider07 - 3.7.2003, 09:22
PM MAIL ICQ MSN   Вверх
eof
Дата 3.7.2003, 10:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 30.5.2003

Репутация: нет
Всего: нет



Я не могу поверить! Неужели правда? Форма же не должна получать сообщений от клавиатуры, она же неактивная. Или scroll lock такая волшебная кнопка?
PM MAIL   Вверх
lider07
Дата 3.7.2003, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 11.6.2003
Где: Бишкек

Репутация: нет
Всего: нет



Ловишь нажатие и проверяешь
Key = VK_SCROLL
ну попробуй так!
PM MAIL ICQ MSN   Вверх
lider07
Дата 3.7.2003, 11:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 11.6.2003
Где: Бишкек

Репутация: нет
Всего: нет



Или можно тогда Хуком - для етого форма и ненужна
PM MAIL ICQ MSN   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0699 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.