Проект ОС пока что в тупике, и времени пока не хватает, поэтому хочу сразу сказать, что нет особого смысла сейчас что-то писать под EOS. Ну а в целом программирование точно такое же, как под Windows, поэтому просто используй WinAPI. Но реализованы не все функции, поэтому смотри список имеющихся функций в исходниках, в файлах с расширением LK. Отслеживать нажатия клавиш можно по сообщениям WM_KEYDOWN (в параметре wParam младшие 8 бит содержат код клавиши, а следующие 8 бит - флаги нажатия Alt,Shift,Ctrl,Numlock,Caps,Scroll), WM_KEYUP, WM_CHAR (чтобы это сообщение приходило, нужно вызываеть TranslateMessage). Если нужно получить целую строку, то используй ReadConsole(), это стандартная WinAPI процедура, справку на неё смотри в MSDN. Пример использования - в файле hello.cpp, через неё собственно говоря и работает консоль системы. Ещё есть целый класс консольных функций IConsole, пример тоже в файле hello.cpp. Сначала получаешь указатель на объект: IConsole* pConsole = (IConsole*)NtCurrentPeb()->nProcessParameters.hConsole; потом через pConsole вызываешь методы.
|