|
|
|
"быстро бегает курсор в ДОС программе"
|
|||
|---|---|---|---|
|
#18+
- есть ДОС программа, при запуске в ХП - курсор быстро бегает, работать не получается, - захотел в ДОСе создать резидентную программу - перехват клавиатуры: (* ВСПОМОГАТЕЛЬНАЯ ЧАСТЬ ПРОГРАММЫ *) begin getintvec($9,@int9); (* Сохранение вектора 09H *) setintvec($9,addr(pressbutton)); (* Установка вектора 09H на pressbutton*) logr:=true; (* Инициализация внутренней переменной *) keep(0); (* Выход с сохранением памяти *) end. - НО! все клавиши перехватываются (можно очистить буфер клавиатуры - в pressbutton), а клавиши "стрелки" - все равно в программу попадает сразу 7-10 нажатий (при кратком нажатии на стрелку) - может кто подскажет, можно ли вообще что либо сделать? (сторонние программы - дос-эмуляторы, VM, замедлялки - пробовал, но не удобно, да и программа вылетает, хочется просто и свое) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2007, 19:00 |
|
||
|
"быстро бегает курсор в ДОС программе"
|
|||
|---|---|---|---|
|
#18+
Сколь мне помнится, я запускал в ХП ДОС-программу восьмидесятых годов, проблем с клавиатурой не было, в том числе со стрелками. Поэтому я бы в первую очередь посмотрел, каким образом эта программа воспринимает ввод с клавиатуры. "Что-то тут не так", я бы сказал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2007, 19:42 |
|
||
|
"быстро бегает курсор в ДОС программе"
|
|||
|---|---|---|---|
|
#18+
softwarerСколь мне помнится, я запускал в ХП ДОС-программу восьмидесятых годов, проблем с клавиатурой не было, в том числе со стрелками. Поэтому я бы в первую очередь посмотрел, каким образом эта программа воспринимает ввод с клавиатуры. "Что-то тут не так", я бы сказал. Проблем то и нет - только курсор (в ХП) на каждое короткое нажатие пробегает много шагов: 7-10 минимум, а в чистом досе - строго по одному шагу. И вся проблема. А посмотреть - как воспринимает ввод с клавиатуры - это как: в отладчике что ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2007, 23:02 |
|
||
|
"быстро бегает курсор в ДОС программе"
|
|||
|---|---|---|---|
|
#18+
Cкорее в дизассемблере. Думаю, она читает клавиатуру как-нибудь хитро, потому и проблемы. Может, вешает собственный обработчик прерывания. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2007, 23:09 |
|
||
|
"быстро бегает курсор в ДОС программе"
|
|||
|---|---|---|---|
|
#18+
Поиграйся с mode. что-то в духе: MODE CON RATE=2 DELAY=2 Вставь это в батник запуска дос программы. Если клавиатура замедлится слишком сильно увеличь rate. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2007, 00:09 |
|
||
|
"быстро бегает курсор в ДОС программе"
|
|||
|---|---|---|---|
|
#18+
Задание частоты повторений знаков с клавиатуры Синтаксис mode con[:] [rate=r delay=d] Параметры con[:] Обязательный параметр. Задает установку параметра для клавиатуры. rate=r Частота повторений вывода знака на экран при нажатии и удержании клавиши. delay=d Промежуток времени, после которого нажатая и удерживаемая клавиша начинает повторять знаки. ----- это не помогает, к сожалению... вообще удивительно: MODE CON RATE=1 DELAY=200 в блокноте - сильно замедляет курсор, а дос программа - вообще не чувствует ничего! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2007, 18:30 |
|
||
|
"быстро бегает курсор в ДОС программе"
|
|||
|---|---|---|---|
|
#18+
Пользовательвообще удивительно: MODE CON RATE=1 DELAY=200 в блокноте - сильно замедляет курсор, а дос программа - вообще не чувствует ничего! Cовершенно неудивительно. Эти параметры обслуживаются процессором клавиатуры и едины для всей системы. Это те же самые параметры, что Вы можете выставить в BIOS. И действуют они на все клавиши и все программы одинаково; если в одной особой программе особо работают стрелки - дело явно не в этом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2007, 19:26 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=34687133&tid=1345938]: |
0ms |
get settings: |
4ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
139ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
27ms |
get tp. blocked users: |
1ms |
| others: | 204ms |
| total: | 396ms |

| 0 / 0 |
