Ru/api/kernel: Difference between revisions

From KolibriOS wiki
Jump to navigation Jump to search
(Функция 1 - перенесена)
(Функция 2 - перенесена)
Line 20: Line 20:
== Функция 2 - получить код нажатой клавиши. ==
== Функция 2 - получить код нажатой клавиши. ==


Забирает код нажатой клавиши из буфера.
Извлекает из буфера код нажатой клавиши.
Параметры:
  * eax = 2 - номер функции
Возвращаемое значение:
  * если буфер пуст, возвращается eax=1
  * если буфер непуст, то возвращается al=0, ah=код нажатой клавиши,
    старшее слово регистра eax обнулено
  * если есть "горячая клавиша", то возвращается
    al=2, ah=сканкод нажатой клавиши (0 для управляющих клавиш),
    старшее слово регистра eax содержит состояние управляющих клавиш
    в момент нажатия горячей клавиши
Замечания:
  * Существует общесистемный буфер нажатых клавиш размером 120 байт,
    организованный как очередь.
  * Существует ещё один общесистемный буфер на 120 "горячих клавиш".
  * При вызове этой функции приложением с неактивным окном
    считается, что буфер нажатых клавиш пуст.
  * По умолчанию эта функция возвращает ASCII-коды; переключиться на
    режим сканкодов (и назад) можно с использованием функции 66.
    Однако, горячие клавиши всегда возвращаются как сканкоды.
  * Узнать, какие комбинации клавиш соответствуют каким кодам, можно,
    запустив приложения keyascii и scancode.
  * Сканкоды возвращаются непосредственно клавиатурой и фиксированы;
    ASCII-коды получаются с использованием таблиц преобразования,
    которые можно установить подфункцией 2 функции 21 и прочитать
    подфункцией 2 функции 26.
  * Как следствие, ASCII-коды учитывают текущую раскладку клавиатуры
    (rus/en) в отличие от сканкодов.
  * Поступает информация только о тех горячих клавишах, которые были
    определены этим потоком подфункцией 4 функции 66.


Описание функции перенесено в отдельную статью: [[SysFn02 | Функция 2]]


== Функция 3 - получить системное время. ==
== Функция 3 - получить системное время. ==

Revision as of 10:58, 27 March 2010