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

Вниз

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

 
Alexei ©   (2009-08-15 01:03) [0]

Как в целом для приложения (а не для конкретной формы) программно определить, что пользователь
1) нажал клавишу (любую) на клавиатуре;
2) сделал манипуляцию мышью (нажал левую / правую кнопку мыши или покрутил колесом)?


 
TIF ©   (2009-08-15 02:04) [1]

Очень просто :)
Нужно просто ловить сообщения - messages, посылаемые системой

1) Читаем MSDN и собираем нужные нам сообщения:
WM_KEYDOWN:
http://msdn.microsoft.com/en-us/library/ms646280(VS.85).aspx
WM_MOUSEWHEEL:
http://msdn.microsoft.com/en-us/library/ms645617(VS.85).aspx
и так далее

2) Размещаем на форме компонент TApplicationEvents, с помощью которого будем ловить сообщения, посылаемые нашему application
3) В событии OnMessage у него прописываем нужный код, который должен выполняться в каждом конкретном случае, например:
case Msg.message of
    WM_KEYDOWN: ListBox1.Items.Add("Нажата клавиша");
      WM_KEYUP: ListBox1.Items.Add("Отжата клавиша");
 WM_SYSKEYDOWN: ListBox1.Items.Add("Нажата системная клавиша");
   WM_SYSKEYUP: ListBox1.Items.Add("Отжата системная клавиша");
 и так далее :)
end;


PS: полный список сообщений, которые нужны в данном случае
WM_KEYDOWN
WM_KEYUP
WM_SYSKEYDOWN
WM_SYSKEYUP
WM_LBUTTONDOWN
WM_LBUTTONUP
WM_RBUTTONDOWN
WM_RBUTTONUP
WM_MOUSEWHEEL

Подробности - в MSDN (см. пункт 1), хотя и по их названиям можно запросто понять, к каким событиям они привязаны



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

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

Наверх





Память: 0.45 MB
Время: 0.003 c
2-1305730411
vasja123
2011-05-18 18:53
2011.09.04
лаги с paramcount


1-1265749109
azatsh
2010-02-09 23:58
2011.09.04
вертикальный TabControl


2-1305638430
ok
2011-05-17 17:20
2011.09.04
Узнать какой radiobutton нажат


8-1215423834
Лол
2008-07-07 13:43
2011.09.04
Выввод изображения в подсказке хинт


2-1305875891
samalex2504
2011-05-20 11:18
2011.09.04
Установить формат ячейки в Excel





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский