Объявление форума |
Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС. |
Полигон-2 » IBM PC-совместимое. До 2000 года включительно » Можно ли сэмулировать нажатие сочетания клавиш в DOS-е? |
<<Назад Вперед>> | Печать |
sanders
Advanced Member
Профессионал Откуда: Санкт-Петербург Всего сообщений: 6434 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 26 мар. 2008 |
Смысл в том, что некий древний ноутбук не запоминает после перезагрузки настройку яркости DSTN-экрана. Чтоб ее вывести на комфортный уровень, нужно после включения (и даже после "теплой" перезагрузки) три раза нажать FN+яркость. Я хочу сделать программку, делающую это за меня. Можно ли сначала перехватить нажатие клавиш, чтобы получить код этого сочетания? Скорее всего да, что-то такое я делал 25 лет назад, тыря пароли в институте. А вот дальше - куда этот код заслать? В стандартный обработчик BIOS? Это и должна выполнять программка на ассемблере или даже на Паскале, поскольку Паскаль я знаю, а размер кода не важен, т.к. программка не остается резидентной в ОЗУ. А может DOS не знает таких клавиш, как "FN", "яркость+", "яркость-", и если я перехвачу прерывание DOS, то не получу никаких кодов? Не будет никакого прерывания по клавиатуре? |
Escalibur
Advanced Member
Откуда: Москва Всего сообщений: 945 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 12 окт. 2017 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 2 декабря 2018 23:48 Сообщение отредактировано: 2 декабря 2018 23:50
sanders, я думаю, эти сочетания не отловить программно. Не все коды клава возвращает, сочетания FN ИМХО не отловишь, т.к. они реализованы железно. |
i8088
Advanced Member
Откуда: г. Баку, Азербайджан Всего сообщений: 2132 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 янв. 2015 |
Предлагаю посмотреть, отправляется ли какой-либо scan-code при нажатии этих клавиш в программе тестирования клавиатуры, по моему есть в AMI DIAG (как во встроенной диагностике у 286 плат) |
sanders
Advanced Member
Профессионал Откуда: Санкт-Петербург Всего сообщений: 6434 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 26 мар. 2008 |
Нет там ничего встроенного. ХТ-шка эта с зашитым DOS-ом и собственным BIOS. Может, как-то "сесть" на IRQ1 и выдавать на экран коды нажатий, а потом возвращать коды на дальнейшую обработку? Если коды "FN+яркость" появятся, тогда уже думать что с ними дальше делать. int 1 я же смогу перенаправить на свой обработчик? |
lexx
Full Member
Откуда: Москва/СПб Всего сообщений: 227 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 12 авг. 2010 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 3 декабря 2018 10:18 Сообщение отредактировано: 3 декабря 2018 10:21
Я, может быть, ошибаюсь, но scan-code никуда не отправляется, а считывается обработчиком прерывания INT9h из порта 60h. Нужно просто перехватить вектор INT9h и прочитать скан-код из порта раньше стандартного обработчика. sanders написал: Не int 1 а INT9. При инициализации контроллера прерываний линии IRQ 1 соответствует вектор INT 9 int 1 я же смогу перенаправить на свой обработчик? |
uav1606
Advanced Member
Откуда: Енакиево Всего сообщений: 4373 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 16 янв. 2008 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 3 декабря 2018 13:28 Сообщение отредактировано: 3 декабря 2018 13:28
По-хорошему, надо бы покопаться в коде BIOS, найти код изменения яркости, а потом повторить его в своей программе нужным образом. (Т.е. выяснить, к примеру, в какие порты идёт при этом запись и т.п.) Что касается клавиатуры... Ну, узнать скан-код можно попытаться с помощью спец. программ вроде этой: ftp://ftp2.se.netbsd.org/mirro...ncodtp.zip А вот как его сымитировать... Есть функция 05 прерывания Int 16h, которая предназначена для имитации нажатия клавиш, но она больше для пользовательских программ, вряд ли BIOS на это как-то прореагирует. Есть и программы для этого, вроде вот этой: ftp://ftp2.se.netbsd.org/mirro...ncd500.zip Но то же возражение - BIOS, скорее всего, будет на эту имитацию наплевать... |
sanders
Advanced Member
Профессионал Откуда: Санкт-Петербург Всего сообщений: 6434 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 26 мар. 2008 |
Если бы кто-то взялся за исследования кода BIOS, я бы считал Debug-ом BIOS, только вот он может быть не только в видимой части E000-FFFF, но и в какой-то скрытой, как скрыта MS-DOS, зашитая там же в ROM, и тогда я считаю не всё. А за ссылки спасибо, на выходных попробую. |
<<Назад Вперед>> | Печать |
Полигон-2 » IBM PC-совместимое. До 2000 года включительно » Можно ли сэмулировать нажатие сочетания клавиш в DOS-е? |
0 посетителей просмотрели эту тему за последние 15 минут |
В том числе: 0 гостей, 0 скрытых пользователей |
Последние | |
[Москва] LIQUID-Акция. Сливаются разъемы CF МС7004 и 7004А на AT и XT Пайка термотрубок Проммать s478 PEAK 715VL2-HT ( Full-Size SBC) Подскажите по 386 материке по джамперам. |
Самые активные 5 тем | |