Хочу сделать всплывающее окно для стандартной консоли windows, которое поможет упростить ввод команд. Как к примеру в видеоиграх. Но хочется сделать это не с помощью написания своей функции gets(), а путем перехвата сообщений к консольному окну (главный поток вызывает gets(), а второй перехватывает нажатия пользователя. Все в рамках одного процесса).
Я пробовал перенаправлять стандартный ввод при помощи SetStdHandle, но ничего хорошего не вышло. (Второй поток может прочитать строку которая в данный момент на экране, но момент нажатия клавиши отловить не получается - в этом то и проблемма).
В MSDN есть примеры как обрабатывать ввод на низком уровне (ReadConsoleInput), но если один поток вызывает к примеру gets(), то второй поток в пролете и ничего не получает.
У меня нет опыта по ручной обработки сообщений Windows, поэтому может кто ответит можно ли в консоли отловить сообщения о нажатии из порожденного потока.
Спасибо.
Я пробовал перенаправлять стандартный ввод при помощи SetStdHandle, но ничего хорошего не вышло. (Второй поток может прочитать строку которая в данный момент на экране, но момент нажатия клавиши отловить не получается - в этом то и проблемма).
В MSDN есть примеры как обрабатывать ввод на низком уровне (ReadConsoleInput), но если один поток вызывает к примеру gets(), то второй поток в пролете и ничего не получает.
У меня нет опыта по ручной обработки сообщений Windows, поэтому может кто ответит можно ли в консоли отловить сообщения о нажатии из порожденного потока.
Спасибо.