| Другое > Hard'n'Soft |
| Вопрос для прогеров на С |
| (1/1) |
| XAVER:
Преподал задал что бы в менюшке кнорка выхода была shift как это реализовать понятия не имею а завтра лаба (((. Если вопрос переформулировать то какой код у клавишы shift? |
| Йобан Матич:
--- Цитата: XAVER ---какой код у клавишы shift --- Конец цитаты --- Расширенный если не ошибаюсь. Если под дос кодишь то: --- Цитата --- INT 16h, AH = 02h, 12h, 22h — Считать состояние клавиатуры Ввод: АН = 02h (83/84-key), 12h (101/102-key), 22h (122-key) Вывод: AL = байт состояния клавиатуры 1 АН = байт состояния клавиатуры 2 (только для функций 12h и 22h) Байт состояния клавиатуры (этот байт всегда расположен в памяти по адресу 0000h:0417h): Бит 7: Ins включена Бит 6: CapsLock включена Бит 5: NumLock включена Бит 4: ScrollLock включена Бит 3: Alt нажата (любая Alt для функции 02h, часто только левая Alt для 12h/22h) Бит 2: Ctrl нажата (любая Ctrl) Бит 1: Левая Shift нажата Бит 0: Правая Shift нажата --- Конец цитаты --- как пользоваться _asm{} знаешь ? |
| XAVER:
Ни чо не понял ((( |
| Йобан Матич:
--- Код: --- #include main(){ for(;;){ l1:_asm{ mov ah, 0x12 //klava 102 knopki int 0x16 //poluchit rezultat test al, 2 //test 2go bita (leviy shift) jnz l2 //esli nazhata to.. vashi deystviya na l2 jmp l1 //ne nazhata?? nu togda na l1 } l2:{ printf(" \t\t Shift nazhat!!!\n"); return 0; } } } --- Конец кода --- проверял на Borland C++ (HE BUILDER) 3.0. работает только в Досе, ибо int 0x16. Для винды не знаю как =( |
| Навигация |
| Главная страница сообщений |