Другое > 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.
Для винды не знаю как =(
Навигация
Перейти к полной версии