Блокирование клавиатуры

Тема в разделе "WASM.ELECTRONICS", создана пользователем slip11, 17 апр 2007.

  1. slip11

    slip11 New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2007
    Сообщения:
    12
    Как заблокировать клавиатуру так, чтобы потом в досе при нажатии Ctrl-Alt-Delete она разблокировалась и завершилась программа(которая ее блокирует)?
     
  2. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Не понял. Что значит "заблокировать"? Ну поставь свой обработчик на IRQ клавы и делай что хочешь. кто мешает то.

    ЗЫ. тема не по разделу
     
  3. slip11

    slip11 New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2007
    Сообщения:
    12
    Данная часть форума относиться также к программированию микроконтроллеров. Установка своего обработчика имеет к этому отношение. Так что тема по разделу.
    Меня интересует выход из обработчика и разблокировка клавы(под блокированием понимается то, что когда жмешь на клавиши ничего не происходит). Если блокировать ее
    mov al,0ADh
    out 64h,ah
    То устанавливаются ли потом в байте 0417h биты клавиш(Ctrl и Alt)?
     
  4. Vov4ick

    Vov4ick Владимир

    Публикаций:
    0
    Регистрация:
    8 окт 2006
    Сообщения:
    581
    Адрес:
    МО
    Вопрос на засыпку: как ты собираешься узнавать, нажат ли аккорд или что ещё, если запретил работу с клавиатурой? :derisive:
    в 64 порт команды не пишутся. Он управляет контроллером PS/2, там же отражается его состояние. Для общения с клавиатурой служит 60-й порт (как на чтение, так и на запись команд). Если очень сильно надо, напишу подробнее.
     
  5. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    а как же знаменитый ресет в контроллер клавы?)

    mov al, 0xfe
    out 0x64, al
     
  6. Vov4ick

    Vov4ick Владимир

    Публикаций:
    0
    Регистрация:
    8 окт 2006
    Сообщения:
    581
    Адрес:
    МО
    И что? Всё как положено.
    (Пропустил начало следующего предложения ;)
     
  7. Vov4ick

    Vov4ick Владимир

    Публикаций:
    0
    Регистрация:
    8 окт 2006
    Сообщения:
    581
    Адрес:
    МО
     
  8. PROFi

    PROFi New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2003
    Сообщения:
    690
    Vov4ick

    Суть в том что ctrl+alt+del обрабатывается не как обычные клавиши процессором который в клавиатуре, а если
    mov al,0ADh
    out 64h,ah
    то я даже не знаю, по идее тогда cntr+alt+del тоже не будет.
    Как заблокировать - перехватить прерывание IRQ 1 (оно же INT 9 в норме), или перенастроинть контроллер прерываний на другой вектор. Написать свой обработчик клавиатуры и в нем ослеживать ctrl+alt+del, предварительно установив в CMOS, что перезагружать комп по ctrl+alt+del не нужно.
     
  9. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    дык вроде CMOS тут не при чем - это раз. перезагрузка по Ctrl-Alt-Del осуществляется просто биосовским обработчиком IRQ1.
    Ты про Shutdown Byte?
    Только я не понял, зачем это менять тебе надо.
    Просто обрабатывать Ctrl-Alt-Del и генерить ресет будет достаточно