(*~\Глагол\Приложения\Клавиши\~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
                              ОТДЕЛ Клавиши+;
(*
 *         Покажу код нажатой клавиши! Для выхода нажмите ESC
 *)
ИСПОЛЬЗУЕТ 
  ОБХОД,
  КОС     ИЗ "..\..\Отделы\Обмен\",
   ОС     ИЗ "..\..\Отделы\Обмен\",
  Ввод    ИЗ "..\..\Отделы\Обмен\",

  НаЭкран ИЗ "..\..\Отделы\Обмен\ВводВывод\";


(*----------------------------------------------------------------------------*)
ЗАДАЧА Показать_Код_НажатойКлавиши;                  (* до нажатия клавши ESC *)
ПЕР
  отКлавиш:Ввод.нОтКлавиш;
   отМышки:Ввод.нОтМышки;
     родп,
     сдвиг:ЦЕЛ;
УКАЗ
        НаЭкран.ВсяЦепь("^ Покажу код нажатой клавиши! Для выхода нажмите ESC^");
  КОЛЬЦО
                        (*
                      ЗАДАЧА WaitForSingleObject(hHandle,dwMilliseconds:ЦЕЛ); ВЫЗОВ "WaitForSingleObject" ИЗ "kernel32.dll";
    КОС.ЖдатьВвод(-1); 
                             WaitForSingleObject(ОС.ссылкаНаВвод,-1);
                         *)
    родп:=КОС.Опрос(отКлавиш,отМышки);
    ЕСЛИ
          родп = Ввод.клавиши
    ТО
      ЕСЛИ
          отКлавиш.код = 1BH
      ТО
        ВОЗВРАТ
      КОН;

      ЕСЛИ
           отКлавиш.знак < ' '
      ТО
        НаЭкран.Цел4числа("%.2x %.2x %.2xX %x^",отКлавиш.код,отКлавиш.мкод,ВЦЕЛ(отКлавиш.знак),ОБХОД.Значение(ЦЕЛ,отКлавиш.упрКнопки))
      ИНАЧЕ
        НаЭкран.Цел4числа("%.2x %.2x '%c' %x^", отКлавиш.код,отКлавиш.мкод,ВЦЕЛ(отКлавиш.знак),ОБХОД.Значение(ЦЕЛ,отКлавиш.упрКнопки));
        НаЭкран.Цел4числа("%x^^",ОС.ВинЗнакВКодКлавиши(отКлавиш.знак),0,0,0)
      КОН
    АЕСЛИ
          родп = Ввод.мышка
    ТО
      НаЭкран.Цел4числа("%.2x %.2x ",отМышки.к,отМышки.с,0,0);
      НаЭкран.Цел4числа("%.2x %.2x %.2x %d^",ОБХОД.Значение(ЦЕЛ,отМышки.кнопки),
                                             ОБХОД.Значение(ЦЕЛ,отМышки.упрКнопки),
                                             ОБХОД.Значение(ЦЕЛ,отМышки.события),отМышки.прокрут);
    КОН
  КОН
КОН Показать_Код_НажатойКлавиши;

УКАЗ
    Показать_Код_НажатойКлавиши
КОН Клавиши.
