Как запретить вкл/выкл NumLock на клаве?

Тема в разделе "WASM.BEGINNERS", создана пользователем opennetworks, 20 дек 2006.

  1. opennetworks

    opennetworks New Member

    Публикаций:
    0
    Регистрация:
    20 окт 2006
    Сообщения:
    436
    Зная что в досе в 0417h пятый байт отвечает за состояние NumLock
     
  2. dag

    dag New Member

    Публикаций:
    0
    Регистрация:
    17 авг 2004
    Сообщения:
    446
    выломать его нафиг ... у некотрых так и сделано =) только сделано не для того чтобы не включали а для того чтобы не отключали =)
     
  3. opennetworks

    opennetworks New Member

    Публикаций:
    0
    Регистрация:
    20 окт 2006
    Сообщения:
    436
    Я имел ввиду программно получить доступ к локу
     
  4. morkster

    morkster New Member

    Публикаций:
    0
    Регистрация:
    12 окт 2005
    Сообщения:
    31
    Для начала попробуй изменить этот байт на 40:17 и посмотри что будет. У меня сильное подозрение что ничего не произоидет.
    Если эффект есть, то можно попытайся поставить hardwarebreakpoint on memory write но тут я особо не разбираюсь. Может для этого придётся переводить дос в режим v86
    Это если обязательно использовать dos data segment

    Если нет, то то возможностей несколько больше, но тут зависит от того зачем тебе это надо.

    Надо-ли это на один/несколько определённых компов, или что работало везде?
    Эта фича должна работать только в твоей программе, или после возврата в дос тоже?
    Можно-ли для этого использовать TSR?
    Можно-ли редактировать command.com на диске, да и вообще, какой там "шелл"?
    Если эта фича должна работать после возврата в дос, должна-ли она работать также в прогах которые используют свой обработчик клавиатуры?

    Обычно такая фича не нужна вообще, и человеку просто хочется поиграть со светодиодом, типа "Лампочка гори!" но топик намекает на что-то иное

    Детали please
     
  5. diamond

    diamond New Member

    Публикаций:
    0
    Регистрация:
    21 май 2004
    Сообщения:
    507
    Адрес:
    Russia
    Лампочки NumLock, CapsLock, ScrollLock на клавиатуре включаются/выключаются определённой командой, посылаемой в порт клавиатуры 0x60 (out 0x60, al). BIOS-овский обработчик int 9 при нажатии на соотвестствующую клавишу а) запоминает в вышеуказанном байте новое состояние индикаторов и б) посылает клавиатуре команду установки лампочек. Так что само по себе изменение байта в памяти никакого эффекта на клавиатуру не окажет. Как запретить включение/выключение... Можно установить свой обработчик int 9, который не будет посылать таких команд...
     
  6. opennetworks

    opennetworks New Member

    Публикаций:
    0
    Регистрация:
    20 окт 2006
    Сообщения:
    436
    morkster

    Естесственно! -- туда хоть 45 пиши - не изменится
    В данной программе NumLock отвечает за включение/выключение определенного устройства
    Это не дос

    diamond

    Спасибо
     
  7. opennetworks

    opennetworks New Member

    Публикаций:
    0
    Регистрация:
    20 окт 2006
    Сообщения:
    436
    защищенный режим (flat) не пускает в БИОС -- Что делать?
     
  8. W4FhLF

    W4FhLF New Member

    Публикаций:
    0
    Регистрация:
    3 дек 2006
    Сообщения:
    1.050
    А что GetKeyboardState + keydb_event не подходит? Там же 2 строки кода, чтобы включить/выключить лампочку, сэмулировав нажатие клавиши.
     
  9. opennetworks

    opennetworks New Member

    Публикаций:
    0
    Регистрация:
    20 окт 2006
    Сообщения:
    436
    W4FhLF
    Нет


    и не в лампочке дело а в клавише!
     
  10. ssx

    ssx Member

    Публикаций:
    0
    Регистрация:
    19 авг 2003
    Сообщения:
    336
    напиши фильтр клавы. в ddk есть пример
     
  11. opennetworks

    opennetworks New Member

    Публикаций:
    0
    Регистрация:
    20 окт 2006
    Сообщения:
    436
    ssx
    Разумно

    Кое чего по факам еще накопал - пока на стадии проверки
     
  12. zxm

    zxm New Member

    Публикаций:
    0
    Регистрация:
    20 июл 2006
    Сообщения:
    71
    Вариантов несколько. Первый - првоерять состояние клавиши и зменять если что. Второй - хуки - ставишь на клаву и перехватыаешь нажатие. Третий - драйвер.
     
  13. opennetworks

    opennetworks New Member

    Публикаций:
    0
    Регистрация:
    20 окт 2006
    Сообщения:
    436
    zxm

    Сними ограничение на ввод -- у тебя 27 символов стоит:)
     
  14. opennetworks

    opennetworks New Member

    Публикаций:
    0
    Регистрация:
    20 окт 2006
    Сообщения:
    436
    Вот его я в факах как раз нашел --- на англицком тока но вроде понятно

    Просто прога пишется без винапи -- :dntknw:((
     
  15. ssx

    ssx Member

    Публикаций:
    0
    Регистрация:
    19 авг 2003
    Сообщения:
    336
    %NTDDK%\src\input\kbfiltr