Общесистемный захват ключа - сложная тема, но общесистемная перехват ключа еще сложнее. У каждой OS / GUI есть свое решение, по крайней мере, для захвата. Qt4 не предоставляет такую возможность, но Библиотека Qt eXTension решает проблему с помощью QxtGlobalShortcut . Это хорошая обертка для:
Таким образом, вы можете получить явную комбинацию клавиш, то есть конкретный ключ и модификаторы (XGrabKey () допускает немного больше), которые не получит ни одно другое приложение. Последовательности клавиш, то есть последовательные комбинации клавиш, здесь не поддерживаются.
Перехват клавиатуры гораздо мощнее, потому что он позволяет просматривать входные события (или даже фильтровать их). Он используется не только клавиатурными регистраторами, но и здесь является типичной ассоциацией.
Если вы в Windows, тогда вы можете прочитать:
В X11 все намного сложнее. Есть как минимум две страницы, которые вы можете прочитать:
Было X Расширение перехвата событий , но оно не поддерживалось и в конечном итоге было удалено.
Надеюсь, это можно сделать без помощи инфраструктуры X11. В ядре Linux 2.6 имеется «Интерфейс событий», известный как evdev , который можно использовать здесь. Подробности можно найти в исходном коде кейлоггера Linux logkeys . Это также можно сделать с помощью чего-то похожего на evdev. Смотрите мой проект PoC:
kaos - Отображение ключевых действий на экране.
А у меня нет Mac, так что дальнейших ссылок нет. ;)