но я понятия не имею, с чего начать, готов поспорить, что-то подобное уже существует.
И вы выиграли пари!
Решение, которое вы ищете, называется global keyboard hook
.
Если вы можете программировать на C #, вот пример, как это сделать.
Я уже писал такие бывшие хуки в C, но в настоящее время в этом нет необходимости, с C # вы также можете их получить.
Работа такого хука довольно проста: ваша программа получает ВСЕ события клавиатуры ДО того, как они произойдут!
Так, например, вы можете сказать «если я получу" а "и" е ", я напишу вместо" æ "или что-то еще», вы можете "отобразить" захваченные символы.
Крючки являются одной из самых мощных функций Windows. Мы можем перехватить все события в среде Windows.
В операционной системе Microsoft® Windows ™ ловушка - это механизм, с помощью которого функция может перехватывать события (сообщения, действия мыши, нажатия клавиш), прежде чем они достигнут приложения. Функция может воздействовать на события и, в некоторых случаях, изменять или отменять их. Функции, которые получают события, называются функциями фильтра и классифицируются в соответствии с типом события, которое они перехватывают. Например, функция фильтра может хотеть получать все события клавиатуры или мыши. Чтобы Windows вызывала функцию фильтра, она должна быть установлена, то есть присоединена к хуку Windows (например, к хуку клавиатуры). Присоединение одной или нескольких функций фильтра к крючку называется установкой крючка. Если к хуку подключено более одной функции фильтра, Windows поддерживает цепочку функций фильтра. Последняя установленная функция находится в начале цепочки, а последняя установленная функция - в конце.
Для поддержки и доступа к функциям фильтра приложения используют функции SetWindowsHookEx и UnhookWindowsHookEx .