Блокировка Ctrl+break - снятия задачи в ДОС |
1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
Блокировка Ctrl+break - снятия задачи в ДОС |
BlackShadow |
Сообщение
#21
|
Гость |
Не стал дочитывать до конца - влом как-то. Есть такой Int интересный, который вызывается как реакция на Ctrl+Break. Вроде 24h. Его адрес ещё в PSP прописывается. Можно было бы его перехватить... Хотя, что на это скажет винда - не знаю.
|
Altair |
Сообщение
#22
|
Ищущий истину Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: 45 |
Ага, спасибо BlackShadow, именно мне это и надо!
перхват прерывания самое надежное дело! -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
godd |
Сообщение
#23
|
Новичок Группа: Пользователи Сообщений: 40 Пол: Мужской Репутация: 0 |
BlackShadow
а ты почитай, там вывод: checkbreak из модуля crt решает данную задачу |
godd |
Сообщение
#24
|
Новичок Группа: Пользователи Сообщений: 40 Пол: Мужской Репутация: 0 |
Oleg_Z
дело хозяйское |
Altair |
Сообщение
#25
|
Ищущий истину Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: 45 |
Дело в том, что из модуля то решает но инстерсно как там все работает!
-------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
godd |
Сообщение
#26
|
Новичок Группа: Пользователи Сообщений: 40 Пол: Мужской Репутация: 0 |
Oleg_Z
понятно. просто я на ассме не разбираюсь, и не до конца понимаю, где он может пригодиться (ну мелкие там функции для прог - это и я, если поднапрячся и сильно надо будет смогу, а по-крупному?) |
BlackShadow |
Сообщение
#27
|
Гость |
godd, тогда и не пытайся учить старших
CheckBreak определяет набор функций DOS'а, которые используются при вводе выводе самим модулем. А вот Oleg_Z, может относит себя к тем, что не станет рисковать Runtime Error'ом 200 из-за какого-то CheckBreak'а. |
godd |
Сообщение
#28
|
Новичок Группа: Пользователи Сообщений: 40 Пол: Мужской Репутация: 0 |
BlackShadow
я и не пытаюсь ;) мне просто интересно ) |
xds |
Сообщение
#29
|
N337 Группа: Пользователи Сообщений: 737 Пол: Мужской Репутация: 26 |
Прерывание Int 23h активизируется из системных вызовов DOS, проверяющих буфер клавиатуры (в основном функции консольного ввода-вывода), и возникает при обнаружении в буфере сочетания Ctrl-C. При нажатии Ctrl-Break происходит более сложная комбинация: контроллер клавиатуры -> IRQ1 <=> Int 9 -> Int 1Bh - обработчик Ctrl-Break BIOS'а, по умолчанию вставляет Ctrl-C в буфер клавиатуры.
Вектор Int 23h не требует восстановления перед выходом из программы: после завершения программы DOS сама присваивает стандартные значения векторам Int 22h, 23h, 24h. -------------------- The idiots are winning.
|
Текстовая версия | 25.04.2024 14:44 |