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