Нужен резидент, блокирующий нажатие CTRL+Break.
Что происходит при нажатии этих клавиш?
Осуществить блокировку требуется программно, т.к. соответствующая команда ДОС не работает!
Блокировка Ctrl+break - снятия задачи в ДОС |
1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
Блокировка Ctrl+break - снятия задачи в ДОС |
Altair |
Сообщение
#1
|
Ищущий истину Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: 45 |
Нужен резидент, блокирующий нажатие CTRL+Break.
Что происходит при нажатии этих клавиш? Осуществить блокировку требуется программно, т.к. соответствующая команда ДОС не работает! -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
APAL |
Сообщение
#2
|
Смотрю... Группа: Пользователи Сообщений: 1 055 Пол: Мужской Реальное имя: Пшеничный Алексей Анатольевич Репутация: 6 |
Вроде была какая-то переменная окружения в ДОСе.
А что, разве в TP не работает SetCBreak(False) и checkbreak:=false ? -------------------- |
GoodWind |
Сообщение
#3
|
Автооответчик Группа: Пользователи Сообщений: 1 188 Пол: Мужской Реальное имя: Александр Репутация: 16 |
Цитата Вроде была какая-то переменная окружения в ДОСе break=off вроде ;) -------------------- Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
|
Altair |
Сообщение
#4
|
Ищущий истину Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: 45 |
Цитата break=off вроде Если бы было так просто, я бы не спрашивал. :P SetCBreak(False); не работает!, потому что он устанавливает переменную окружения ДОС в нужное значение. Но в ДОСе почему -то не работает эта функция (во всяком случае у меня, значит и еще у кого-то) checkbreak:=false; устанавливая так переменную, модуль CRT хранит вектор прерывания и обрабатывает нажатие CTRL+BREAK на уровне прерываний. Вот почему работает checkbreak:=false и НЕ работает SetCBreak(False); А почему переменная окружения ДОС не исполняет своих обязанностей? -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
SKVOZNJAK |
Сообщение
#5
|
Профи Группа: Пользователи Сообщений: 930 Пол: Мужской Репутация: 11 |
Попробуй ту же прогу протестить в реальном досе, может винда не даёт тебе выполнить эту операцию.
|
Altair |
Сообщение
#6
|
Ищущий истину Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: 45 |
Пробовал!
Нет, не работает дос переменная окружения! -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
GoodWind |
Сообщение
#7
|
Автооответчик Группа: Пользователи Сообщений: 1 188 Пол: Мужской Реальное имя: Александр Репутация: 16 |
Цитата Нет, не работает дос переменная окружения! интересный, извините за выражение, гемморой .... тоже займусь, из спортивного интереса, блокировкой Ctrl+break -------------------- Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
|
Nebel |
Сообщение
#8
|
Новичок Группа: Пользователи Сообщений: 10 Пол: Мужской Репутация: 0 |
Виновата имеено винда
|
Altair |
Сообщение
#9
|
Ищущий истину Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: 45 |
А вот за я зык тебя никто не тянул.
Будешь мне помогать ... Вот прога: Код uses DOS,CRT; var i:byte; begin {SetCBreak(False);} {*} checkbreak:=false; {**} i:=1; writeln('START, vvedite parol:'); readln(i); end. По очереди будешь раскоментировать строки * и ** , скажешь какая работает а какая нет! :D -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
GoodWind |
Сообщение
#10
|
Автооответчик Группа: Пользователи Сообщений: 1 188 Пол: Мужской Реальное имя: Александр Репутация: 16 |
Цитата Будешь мне помогать ... да пжалста... ---- извиняюсь за задержку Вынь переставлял ;) ----- вобщем: с раскоментированной (!) все работает (ноль реакции на нажатие ctrl+break ), но не в пасовском отладчике, а при запуске проги из под коммандной строки. я так понял, что пасовский дебагер следит за нажатием Ctrl+break ( и ctrl+c тоже) на случай криво написанной проги, т.е. проверка нажатия не встраивается в код при компиляции, а осуществляется им. в данных условиях, раскоментировать вторую строку я не стал фуф... Сообщение отредактировано: GoodWind - -------------------- Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
|
Altair |
Сообщение
#11
|
Ищущий истину Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: 45 |
ну значит мои размышления верны. Я счастлив!
-------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
GoodWind |
Сообщение
#12
|
Автооответчик Группа: Пользователи Сообщений: 1 188 Пол: Мужской Реальное имя: Александр Репутация: 16 |
Рад помочь,
Цитата помогая друг другу, мы справимся с любыми трудностями! [offtop] Олег, у тебя юбилейное, 900 сообщение :p10: [/offtop] -------------------- Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
|
godd |
Сообщение
#13
|
Новичок Группа: Пользователи Сообщений: 40 Пол: Мужской Репутация: 0 |
checkbreak:=false;
и усе. при его примениении SetCBreak(False) уже не обязательно, и библиотеку DOS мона не подключать, а обойтись тока CRT ) |
Altair |
Сообщение
#14
|
Ищущий истину Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: 45 |
godd, если бы Вы внимательно прочти сказанное выше, Вы бы не оставили здесь свой неудачный пост.
Цитата Виновата имеено винда аналогично! Сообщение отредактировано: Oleg_Z - -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
godd |
Сообщение
#15
|
Новичок Группа: Пользователи Сообщений: 40 Пол: Мужской Репутация: 0 |
у меня и под Виндой блокируется (ME).
|
GoodWind |
Сообщение
#16
|
Автооответчик Группа: Пользователи Сообщений: 1 188 Пол: Мужской Реальное имя: Александр Репутация: 16 |
Цитата у меня и под Виндой блокируется (ME). надо-же -------------------- Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
|
Guest |
Сообщение
#17
|
Гость |
я серьезно говорю. Винда - MilleniumEdition, Ctrl+Break - блокируется через checkbreak:=false модуля CRT (в help'e написано что он и под виндами пашет, и отключает не тока Ctrl+Break но и Alt+F4 и еще чо-то - кому интересно в справке), просто Break - останавливает прогу до нажатия клавиши
|
godd |
Сообщение
#18
|
Новичок Группа: Пользователи Сообщений: 40 Пол: Мужской Репутация: 0 |
пред пост я написал.
|
Altair |
Сообщение
#19
|
Ищущий истину Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: 45 |
Цитата я серьезно говорю. Винда - MilleniumEdition, Ctrl+Break - блокируется через checkbreak:=false модуля CRT (в help'e написано что он и под виндами пашет, и отключает не тока Ctrl+Break но и Alt+F4 и еще чо-то - кому интересно в справке), просто Break - останавливает прогу до нажатия клавиши Это всем известно Цитата просто Break - останавливает Ничего он не останавливает! Это останавливает клавиша PAUSE, просто они 2 клавиши сидят физически на одной, но при нажатии PAUSE и PAUSE (break) и еще какой-нибудь вырабатываютсяразные скан-коды. ! -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
godd |
Сообщение
#20
|
Новичок Группа: Пользователи Сообщений: 40 Пол: Мужской Репутация: 0 |
Oleg_Z
я имел ввиду паузу. |
Текстовая версия | 27.09.2024 21:12 |