Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Отслеживание нажатия некоторых клавиш в QNX 4.25
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы > Linux
GxOST
Доброго времени суток, коллеги!

Потребовалось в QNX 4.25 флаг нажатия некоторых клавиш выкладывать в shared memory. Дело в том, что у меня под Photon-ом запущено несколько окошек, но стандартный ввод производится только в активное окно. Организовал хранилище признаков нажатия в shared memory, а на перехвате клавиатуры стопорнулся. Не получилось сходу ни в Photon-е, ни внутрисистемными методами организовать.

P.S. Знаний в линуксоподобных системах у меня не ахти, поэтому буду рад любым идеям, мыслям и информации по сабжу.
gosha
QUOTE (GxOST @ Oct 29 2011, 06:42) *
Доброго времени суток, коллеги!

Потребовалось в QNX 4.25 флаг нажатия некоторых клавиш выкладывать в shared memory. Дело в том, что у меня под Photon-ом запущено несколько окошек, но стандартный ввод производится только в активное окно. Организовал хранилище признаков нажатия в shared memory, а на перехвате клавиатуры стопорнулся. Не получилось сходу ни в Photon-е, ни внутрисистемными методами организовать.

P.S. Знаний в линуксоподобных системах у меня не ахти, поэтому буду рад любым идеям, мыслям и информации по сабжу.

Работа с клавиатурой: мне рекомендовали как пример исходные тексты терминалки.

Открываем консоль
open()
завешивается на событие ф-ей select() с таймаутом
По побытию обрабатываем нажатые клавиши.

Ф-ю select() рекомендовали, т. к. её использование гарантирует, что процесс или thread переводится в состояние ожидания собития и не отнимает процессорного времени.

http://www.qnx.com/developers/docs/6.3.0SP...f/s/select.html
В 4.25 эта ф-я есть. Я ей пользовался.
_4afc_
Цитата(GxOST @ Oct 29 2011, 06:42) *
Потребовалось в QNX 4.25 флаг нажатия некоторых клавиш выкладывать в shared memory. Дело в том, что у меня под Photon-ом запущено несколько окошек, но стандартный ввод производится только в активное окно. Организовал хранилище признаков нажатия в shared memory, а на перехвате клавиатуры стопорнулся. Не получилось сходу ни в Photon-е, ни внутрисистемными методами организовать.


А если поверх всех окон открыть невидимое, закреплённое окно/регион во весь экран - оно разве не будет ловить все события?
Во всяком случае мышку у меня так в фотоне ловило.

На сколько я помню идеологию Фотона - фотончик с событием летит из глубин экрана в лицо пользователю проходя все окна находящиеся в данной точке. 10 лет прошло, уже не помню ловил ли я клавиши или не надо было.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.