Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 2 июня!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

ПРОГРАММИРОВАНИЕ НА C и С++



Слушай, дружище, зачем так мучиться с этим языком С++, ты ведь не Билл Гейтс. Возьми тот же Python и программируй, он кроссплатформенный, под Windows тоже работает. Я сам давно заметил: то что на Си пишешь в страницу кода, на питоне решается в одну-две строки. При том, питон намного проще, я его сам недавно изучил по видеокурсу вот этому. Кстати, автор отлично там объясняет. Буквально день-два и уже будешь писать на нём, чего не скажешь про сложный С++.

bioskey

 
 Функция            Интерфейс с клавиатурой при помощи функций BIOS.
 
 
 
 Синтаксис          #include<bios.h>
 
                    int bioskey(int cmd);
 
 
 
 Файл, содержащий   bios.h
 
 прототип
 
 
 
 Описание           bioskey посредством прерывания BIOS 0x16 выполняет
 
                    различные операции  c  клавиатурой.  Параметр   cmd
 
                    определяет операцию.
 
 
 
 Возвращаемое       Значение, возвращаемое функцией bioskey, зависит от
 
 значение           выполняемой операции, которая определяется
 
                    аргументом cmd:
 
 
 
                    ---------------------------------------------------
 
                    cmd    Операция
 
                    ---------------------------------------------------
 
                    0      Если младшие 8 бит не нулевые, bioskey
 
                           возвращает код   ASCII   следующей   нажатой
 
                           клавиши, ожидающей в очереди. Если младшие 8
 
                           битов  равны 0,  то старшие 8 битов содержат
 
                           расширенные   коды   клавиатуры,    описание
 
                           которых   вы   можете   найти   в  документе
 
                           "Техническое справочное руководство  по  IBM
 
                           PC".
 
 
 
                    1      Производится проверка, имело ли место
 
                           нажатие клавиши.    Если    при     проверке
 
                           возвращается значение 0,  это означает,  что
 
                           клавиша не была нажата.  В противном  случае
 
                           возвращается   значение   очередной  нажатой
 
                           клавиши.  Сам  же  код   очередной   нажатой
 
                           клавиши  сохраняется  и  будет возвращен при
 
                           следующем   вызове   функции   bioskey   при
 
                           значении параметра cmd, равном нулю.
 
 
 
                    2      Запрашивает  текущий  статус клавиш типа
 
                           SHIFT. Значение  получается  при  логическом
 
                           сложении следующих кодов (операции "ИЛИ")
 
 
 
                           Бит 7  0x80     INSERT  нажат
 
                           Бит 6  0x40     CAPS нажат
 
                           Бит 5  0x20     NUM LOCK нажат
 
                           Бит 4  0x10     SCROLL LOCK нажат
 
                           Бит 3  0x08     ALT  нажат
 
                           Бит 2  0x04     CTRL  нажат
 
                           Бит 1  0x02     LEFT SHIFT нажат
 
                           Бит 0  0x01     RIGHT SHIFT нажат
 
 
 
 Переносимость      bioskey поддерживается только на компьютерах IBM PC
 
                    или совместимых с ними.
 
 
 
 Пример:
 
 
 
 #include <stdio.h>
 
 #include <bios.h>
 
 #include <ctype.h>
 
 
 
 #define RIGHT 0x0001
 
 #define LEFT  0x0002
 
 #define CTRL  0x0004
 
 #define ALT   0x0008
 
 
 
 int main(void)
 
 {
 
   int key, modifiers;
 
 
 
   /* Функция 1 возвращает 0, пока не будет
 
   нажата клавиша. Ожидание  ввода. */;                                                                           /* now use function 0 to get return value of
 
   while (bioskey(1) == 0);
 
 
 
   /* Теперь используем функцию 0, чтобы получить
 
   значение клавиши  */
 
   key = bioskey(0);
 
 
 
   /* Используем функцию 2, чтобы определить,
 
   используются ли клавиши типа SHIFT */.
 
   modifiers = bioskey(2);
 
   if (modifiers) {
 
      printf("[");
 
      if (modifiers & RIGHT) printf("RIGHT ");
 
      if (modifiers & LEFT ) printf("LEFT ");
 
      if (modifiers & CTRL ) printf("CTRL ");
 
      if (modifiers & ALT  ) printf("ALT ");
 
      printf("] ");
 
 }
 
 /* вывести символ нажатой клавишу */
 
 if (isalnum(key & 0xFF))
 
    printf("'%c'\n",key);
 
 else
 
    printf("%#02x\n",key);
 
 }


<< ВЕРНУТЬСЯ В ПОДРАЗДЕЛ

<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ




Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS