Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2003.06.09;
Скачать: [xml.tar.bz2];

Вниз

Как отследить нажатие определенной клавиши?   Найти похожие ветки 

 
Tenrai   (2003-03-30 07:55) [0]

Доброго времени суток. Столкнулся со следующей проблемой:
Есть проект без форм, программа работает в фоновом режиме. необходимо отследить нажатие клавиши (к примеру, альт), чтобы при нажатии (и удержании!!) менялась раскладка клавиатуры, а при отпускании - менялась обратно. Смену раскладок произвожу так:

ActivateKeyboardLayout(HKL_NEXT, KLF_REORDER);

Заранее спасибо


 
Song   (2003-03-30 10:40) [1]

SetWindowsHookEx()


 
Tenrai   (2003-03-31 03:14) [2]

Большое спасибо, но нельзя ли поподробнее? Дело в том, что это мой первый опыт написания проги без форм, да и в АПИ я не силен. Существуют флаги wm_SysKeyDown и wm_KeyUp, их, как я понял, и надо использовать. как связать их с указанной функцией и какие указать параметры?


 
Tenrai   (2003-04-04 02:10) [3]

... и тишина ...


 
Almaz   (2003-04-06 00:30) [4]


> Tenrai (31.03.03 03:14)
> Большое спасибо, но нельзя ли поподробнее? Дело в том, что
> это мой первый опыт написания проги без форм, да и в АПИ
> я не силен. Существуют флаги wm_SysKeyDown и wm_KeyUp, их,
> как я понял, и надо использовать. как связать их с указанной
> функцией и какие указать параметры?

Тут все несколько сложнее - так как вам необходимо отлавливать нажатие клавиши глобально, в рамках всей системы, то для этого вам необходимо использовать глобальные ловушки (глобальные хуки). Для ознакомления с данной технологией отсылаю вас к статье на этом сайте: http://delphi.mastak.ru/articles/hooks/index.html
Прочитайте ее, и если останутся вопросы, то я постараюсь на них ответить.

Удачи.


 
kerrik   (2003-04-06 13:13) [5]

Можно попробовать без использования ловушки... Есть такая функция GetAsyncKeyState... Если нужно подробнее, пишите на мыло...



Страницы: 1 вся ветка

Форум: "Система";
Текущий архив: 2003.06.09;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.014 c
3-26341
Программер
2003-05-20 09:12
2003.06.09
Помогите с созданием базы данных InterBase


9-26318
Fuylan
2002-12-30 01:42
2003.06.09
OpenGL


1-26521
Shluz
2003-05-27 11:35
2003.06.09
Цикл...


14-26680
Дмитрий К.К.
2003-05-25 11:21
2003.06.09
Именинники 25 мая


14-26761
Knight
2003-05-22 22:34
2003.06.09
Сканирование портов...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский