выломать его нафиг ... у некотрых так и сделано =) только сделано не для того чтобы не включали а для того чтобы не отключали =)
Для начала попробуй изменить этот байт на 40:17 и посмотри что будет. У меня сильное подозрение что ничего не произоидет. Если эффект есть, то можно попытайся поставить hardwarebreakpoint on memory write но тут я особо не разбираюсь. Может для этого придётся переводить дос в режим v86 Это если обязательно использовать dos data segment Если нет, то то возможностей несколько больше, но тут зависит от того зачем тебе это надо. Надо-ли это на один/несколько определённых компов, или что работало везде? Эта фича должна работать только в твоей программе, или после возврата в дос тоже? Можно-ли для этого использовать TSR? Можно-ли редактировать command.com на диске, да и вообще, какой там "шелл"? Если эта фича должна работать после возврата в дос, должна-ли она работать также в прогах которые используют свой обработчик клавиатуры? Обычно такая фича не нужна вообще, и человеку просто хочется поиграть со светодиодом, типа "Лампочка гори!" но топик намекает на что-то иное Детали please
Лампочки NumLock, CapsLock, ScrollLock на клавиатуре включаются/выключаются определённой командой, посылаемой в порт клавиатуры 0x60 (out 0x60, al). BIOS-овский обработчик int 9 при нажатии на соотвестствующую клавишу а) запоминает в вышеуказанном байте новое состояние индикаторов и б) посылает клавиатуре команду установки лампочек. Так что само по себе изменение байта в памяти никакого эффекта на клавиатуру не окажет. Как запретить включение/выключение... Можно установить свой обработчик int 9, который не будет посылать таких команд...
morkster Естесственно! -- туда хоть 45 пиши - не изменится В данной программе NumLock отвечает за включение/выключение определенного устройства Это не дос diamond Спасибо
А что GetKeyboardState + keydb_event не подходит? Там же 2 строки кода, чтобы включить/выключить лампочку, сэмулировав нажатие клавиши.
Вариантов несколько. Первый - првоерять состояние клавиши и зменять если что. Второй - хуки - ставишь на клаву и перехватыаешь нажатие. Третий - драйвер.
Вот его я в факах как раз нашел --- на англицком тока но вроде понятно Просто прога пишется без винапи -- ((