Можете ли вы отправить команды функциональных клавиш в DOS из командного файла?

4399
megantb

Я новичок в пакетных файлах, и мне нужно написать один для программы, которая работает в DOS. Один из вопросов в приглашении требует команды функциональной клавиши (например, F1, F2 и т. Д.).

Я прочитал статью, в которой говорится, что вы не можете отправлять функциональные клавиши или сочетания клавиш Alt + в DOS. Хотя я также прочитал статью, в которой говорится, что «Специальный расширенный код» для функциональных клавиш выглядит следующим образом:

F1: 0;59 F2: 0;60 etc... 

Итак, мой вопрос, вы можете отправить команды функциональных клавиш в DOS? Если так, каков наилучший способ сделать это?

3
Обратите внимание, что WWW-сайт, на который вы указываете, в данном случае обсуждает DOS, а не Windows или даже VDM в Windows. Если вы действительно не запускаете свою программу в DOS, вы начали с сайта WWW, обсуждая не то, что нужно. И даже если вы действительно используете DOS, вы начали с недопонимания того, что такое «командный файл». Попробуйте изменить свой вопрос [чтобы сосредоточиться непосредственно на фактической цели, которую вы хотите достичь, а не на подзадаче и инструменте, который, вероятно, не подходит] (http://homepage.ntlworld.com./jonathan.deboynepollard/FGA/put -вниз-The-шоколадно-покрытые-banana.html). JdeBP 13 лет назад 0

1 ответ на вопрос

1
RedGrittyBrick

Вот пример из вашей ссылки

@ECHO OFF REM Переназначить F1 для отображения текущего каталога REM переназначить F10, чтобы дать версию DOS  ЭХО ← [0; 59; «DIR / w / p»; 13p ЭХО ← [0; 68; "ВЕР"; 13р  REM Теперь поместите меню на экран в ярко-желтый ЦБС ЭХО ← [1; 33м ECHO ← [12; 20HF1 Список Текущий каталог ECHO ← [14; 20HF10 Версия для печати DOS  REM Сбросить дисплей к нормальному ЭХО ← [0м 

(примечание ← обозначает символ Escape, введенный с помощью Ctrl+, Pзатем Escвнутри команды DOS EDITили команды командной строки Windows EDIT)

Вы спрашивали

Итак, мой вопрос, вы можете отправить команды функциональных клавиш в DOS?

Если пример работает, да, вы можете. На самом деле вы можете использовать Windows, а не DOS, что может изменить ситуацию. Можете ли вы объяснить, что произошло, когда вы попробовали пакетный файл выше?

Когда вы пишете «отправить команды функциональных клавиш», вы можете иметь в виду что-то другое. Если это так, было бы полезно объяснить вам, чего вы хотите достичь, более подробно.

Если так, каков наилучший способ сделать это?

Я не знаю, но метод в статье кажется разумным (если ограничен в применимости).

ECHO ← [0; 59; "DIR / w / p"; 13p Эта команда, насколько я понимаю, переназначает F1 на DIR / w / p. При запуске программы наступает момент, когда она ожидает ввода данных пользователем. Обычный ввод - «F1». Он проходит еще несколько подсказок, где вводит пользователь (y / n). Так как эта команда переназначается. Могу ли я переназначить ключ для представления F1? (т. е. ECHO ← [какая-то клавиша; 0; 59; 13p) Я не уверен, как еще описать то, что я хочу сделать, кроме того, что на экране запрашивается ввод пользователем F1, а затем серии (да / нет). Я хотел бы создать командный файл, который будет отправлять F1 при запросе, а затем отвечать y / n. megantb 13 лет назад 0
Нет, используя эту технику, вы не можете этого сделать. Если вы хотите управлять существующей интерактивной программой для DOS, вам нужна специальная программа, такая как «ожидаемо» - я не знаю версию для MS-DOS, но, вероятно, есть что-то эквивалентное. RedGrittyBrick 13 лет назад 0

Похожие вопросы