Перейти к содержимому

Как через командную строку нажать любую клавишу

  • автор:

Команда Timeout — задать период ожидания.

Команда Timeout используется в командных файлах для организации режима ожидания фиксированного интервала времени в секундах, либо интервала до нажатия клавиши на клавиатуре.

Формат командной строки:

TIMEOUT [/T] таймаут [/NOBREAK]

Параметры командной строки:

/T таймаут — Время ожидания в секундах. Допустимый интервал: от -1 до 99999 секунд.

/NOBREAK — Игнорировать нажатия клавиш, ждать указанное время.

/? — Вывод справки по использованию.

Примечание: значение таймаута, равное -1 задает неограниченное время ожидания до нажатия клавиши.

TIMEOUT /? — отобразить краткую справку по использованию команды

TIMEOUT /T 10 установить режим ожидания 10 секунд. На экран выдается информационное сообщение с отсчетом оставшегося до завершения интервала времени ( 10, 9, 8 секунд . . . ):

Время ожидания 10 сек., нажмите любую клавишу для продолжения

Нажатие любой клавиши приведет к прерыванию таймаута и переходу к выполнению следующей команды.

TIMEOUT /T 300 /NOBREAK — установить интервал ожидания 300 секунд. Нажатие любых клавиш на клавиатуре игнорируется. Нажатие комбинации CTRL+C приведет к выдаче запроса:

Завершить выполнение пакетного файла [Y(да)/N(нет)]?

При ответе N(нет) выполняется завершение таймаута и переход к выполнению следующей команды командного файла. При ответе Y(да)/ — выполняется завершение командного файла. Вместо комбинации CTRL+C можно использовать CTRL+Break.

TIMEOUT /T -1 — ожидание нажатия любой клавиши. На экран выдается сообщение:

Нажмите любую клавишу для продолжения.

Если в данной команде использовать параметр /NOBREAK , то возможен ввод только комбинации CTRL+C

Как через командную строку нажать любую клавишу

Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Сообщения: 4
Благодарности: 0

Ситуация такая: выводится некоторая информация, для продолжения работы скрипта нужно нажать кнопку Enter, для выхода — любую другую. Choice тут не подходит, к сожалению.

Сообщения: 12426
Благодарности: 2328

Конфигурация компьютера
Процессор: Intel(R) Core(TM) i5-2300 CPU @ 2.80GHz
Материнская плата: Gigabyte GA-H67MA-UD2H-B3
Память: Hynix HMT325U6BFR8C-H9 2x2Gb + Hynix HMT351U6BFR8C-H9 2x4Gb
HDD: Hitachi HDS721010CLA332
Звук: Realtek ALC889
Блок питания: Asus 500W
CD/DVD: Optiarc DVD RW AD-7201S ATA Device
Монитор: Acer V243HQAbd
ОС: Windows 7 Ultimate x64 SP1 RTM (6.1.7601)
Индекс производительности Windows: 5,1

Enforcer7, есть такой вариант:

@echo off set /p end=Press ENTER to continue! if "%end%"=="" (goto cont) else (goto :eof) :cont

Сообщения: 4
Благодарности: 0

Morpheus, так я уже пытался извернутся. При нажатии на Enter мы действительно получим пустую переменную, а в противном случае консоль будет дожидаться, пока мы не завершим ввод переменной. Не совсем то, что нужно.

Сообщения: 27449
Благодарности: 8086

1. Вам обязательно реализацию встроенными средствами?
2. Простое «Y/N» в «choice.exe » — вместо «Enter/Any key» — Вас никак не устраивает?
3. Что скажете насчёт использования PowerShell?

Сообщения: 415
Благодарности: 257

Enforcer7, используйте утилиту hs_readkey из набора утилит hs_packet. В сети живой ссылки не нашел, поэтому залил вам на файлообменник. Сканкод Enter’а = 13.

Последний раз редактировалось Anonymоus, 27-04-2012 в 08:49 .

Сообщения: 4
Благодарности: 0

Конечно, хотелось бы решить эту проблему встроенными средствами. Все-таки не всегда получается использовать дополнительные утилиты.

Сообщения: 27449
Благодарности: 8086

Enforcer7, хотелось бы услышать ответы и на остальные вопросы (2 и 3).

Сообщения: 415
Благодарности: 257

Enforcer7, насчет использования только встроенных средств — скажите, а в этом самом батнике что-то обрабатывается в цикле? Т.е. он работает непрерывно, и нужно не прерывая его работы, ожидать нажатия enter? Если да, то вот такой вот демонстрационный образец:

@Echo Off If Exist "%temp%\stop.flag" Del "%temp%\stop.flag" :: Запуск второй копии внутри первой :: (для организации примитивного управления вторым запущенным процессом) If "%SelfStart%"=="" ( Set SelfStart=yes Start /B "" "%~nx0" GoTo ControlThread ) :: Именно тут крутится основной скрипт :WorkThread :: Ерунда со счетчиком в виде имитации полезной нагрузки Cls Set /A i+=1 Echo [%i%] Ping -n 2 127.0.0.1>nul :: А вот тут проверка на наличие файла, дающего сигнал о выходе :: Естественно, что вместо выхода можно совершать любое нужное действие, главное - :: время от времени опрашивать наличие файла, что совсем не блокирует работу :: основного скрипта ожиданием ввода от пользователя If Exist "%temp%\stop.flag" Exit GoTo WorkThread :: Создание файла завершения работы по нажатию Enter :ControlThread Set Input= Set /P Input= If "%Input%"=="" (Echo.>"%temp%\stop.flag") Else (GoTo ControlThread) Exit

Как послать нажатие клавиши через командную строку?

Здравстсвуйте, добрый денёкъ, свободная минутка. Пишу вам письмо любезные линуксозаводчкики, и линкукоразводители. Давеча, поставилъ xbindkeys, посмотрелъ xev покормилъ nano ~/.xbindkeysrc после чего заработалъ запускъ счёт по control+/ , чему я признаться весьма сильно радъ. Но почему то не заработало по правой клавише win и / . Отчего такъ?

И вотъ посему, родилась у меня идея, как бы по комбинации «rwin + п» посылись бы значитъ следующие буквы «Приветствую, доброго здоровьичка!» въ любое изъ запущенныхъ приложений, соответственно находящихся въ фокусе!

Какъ это сотворить?

Tam-Tam
20.06.12 20:19:58 MSK

боюсь предположить, но твой текст с твердым знаком после согласных, случайно не является следствием освоения xbindkeys?

Ответ на твой вопрос: xbindkeys + xvkbd.

chinarulezzz ★★
( 20.06.12 20:25:23 MSK )

Только через xcompose. Потому, что xvkbd, который посоветовал предыдущий оратор, не дружит с юникодом/кириллицей.

x3al ★★★★★
( 20.06.12 20:43:08 MSK )
Ответ на: комментарий от chinarulezzz 20.06.12 20:25:23 MSK

Ставилъ xvkbd что то не понялъ какъ имъ пользоваться. Я бы ещё хотел ять на клавишу либо сontrol+я либо просто rwin забить.

Мне больше нравиться неизвращённый большиками русский языкъ. Хотя к сожалению я его пока слабо знаю.

Tam-Tam
( 20.06.12 20:44:02 MSK ) автор топика
Ответ на: комментарий от x3al 20.06.12 20:43:08 MSK

Вообще было бы очень хорошо, если бы можно было ещё ударение в словахъ ставить, ибо зАмок и замОк это разные вещи. Иногда происходитъ непонимание изъ за этого.

Tam-Tam
( 20.06.12 20:45:41 MSK ) автор топика
Ответ на: комментарий от Tam-Tam 20.06.12 20:45:41 MSK

Советую. Но оно работает немного не так: compose-клавиша нажимается перед чем-то, как dead-key, а не как модификатор.

Можно поставить на compose- любой уникодный символ (включая ударение и ять, пример по ссылке), слово (например, УМВР), предложение (Съешь ещё этих мягких французских булок да выпей чаю) без лимита на количество комбинаций (я как-то делал ~5000 комбинаций, реализуя wubizixing-ввод китайского и оно работало без заметных на глаз тормозов).

И да, если кому-нибудь не лень, запилите статью по xcompose в лоровики.

Ctrl и Command: Как стереть разницу в клавишах между Mac и Windows

О простой идее, которая в хорошем смысле взорвала мой мозг. Будет актуальна для тех, кто параллельно использует обе платформы и спотыкается о Ctrl и Command. Например, разворачивает меню Пуск при попытке что-то скопировать.

Спойлер: Я решил проблему тем, что поменял назначение клавиш Ctrl и Win между собой. Это позволяет зажимать команду Ctrl + C большим и указательным пальцами, так же как на Маке. При этом используется физическая клавиша Win.

Вдруг нелюбимый Windows-компьютер становится послушным как любимый Мак: начинает работать моторная память. Десятки клавиш, которые я использую на Маке, оживают на Windows. Офигенное чувство.

Я использую классическую беспроводную клавиатуру Apple Keyboard A1314 на Windows-моноблоке Acer. В такой конфигурации клавиша Cmd работает на Windows как Win. Описанный в статье лайфхак можно проделать с любой другой клавиатурой.

История вопроса

В мире Windows функцию клавиши Cmd имеет Ctrl и мы не задумываемся, почему это так.

В мире Маков горячие клавиши как правило начинаются на Сommand: Cmd + C копирует, Cmd + V вставляет, Cmd + Z отменяет. Удачная схема, которая позволяет делать действия одной лишь левой рукой, не убирая правую с мыши. Так было с 1983 года, когда эта концепция впервые появились в предшественнике Macintosh, компьютере Apple Lisa.

В ранних версиях Windows в качестве стандарта клавиш использовался Common User Access, разработанный IBM в 1987. В нём были описаны такие клавиши как Ctrl, Alt, Delete, Insert, F1 и другие. В создании Lisa Apple сразу ориентировалась на графический интерфейс (GUI), в то время как перед IBM стояла задача посложнее: CUA должен был поддерживать старые консольные интерфейсы, а не только новые графические. Логично, что в стандарте IBM не было клавиши Cmd. На заре эры Windows компьютеры Macintosh были бешено популярны, а схема Cmd+С/V стала общепринятой и горячо любимой. Microsoft тогда поддержали закрепившийся паттерн, переложив функцию Cmd на максимально похожий на него Ctrl.

В 1994 году Microsoft выпустили первую клавиатуру, в которой появилась клавиша Start — Microsoft Natural Keyboard. Start потом переименовали в Win, поскольку на кнопке был лого Windows. И расположена эта клавиша как раз там, где должен быть Cmd.

В центре архитектуры Windows реет флаг меню Пуск — важнейшей начальной точки взаимодействия, главного меню системы, которое столь знакомо и понятно с первого клика. Решение отдать ему целую клавишу вполне оправдано. Но я считаю само расположение кнопки ужасной ошибкой, потому что моторные привычки миллионов людей, кто работал на Макинтошах были проигнорированы.

Важная модифицирующая кнопка Ctrl уехала в левый угол, удалившись от буквZ-C-V, а следовательно, нажать Ctrl + C большим и указательным, не выгибая руку, не получится. Клавиша Win — не модифицирующая, а исполняющая команду. Это значит, ей не обязательно быть рядом с буквенными клавишами. Ей подошло бы место в правом углу, ровно там где меню Пуск находится на экране. Но дизайнеры из консалтинга Ziba Design, которые разрабатывали концепцию этой клавиатуры для Майкрософта, были настолько увлечены игрой с эргономичной формой, что упустили из виду настоящую эргономику и унификацию.

Позже Apple позаботилась о том, что если подключить любую клавиатуру с клавишей Win в Мак, она будет восприниматься как Cmd. Если подключить маковскую клавиатуру в PC, клавиша Cmd будет работать как Win. Ловушка захлопнулась: Ctrl и Сmd безвозвратно стали разными клавишами.

Исправляем древнюю нестыковку

Я воспользовался бесплатным приложением SharpKeys, которое позволяет переназначить функции клавиш на клавиатуре. Оно прописывает нужную настройку в реестр Windows. Протестировано на Windows 10.

Можно пойти двумя путями: либо настроить функции клавиш вручную, либо загрузить мой файл с готовыми настройками и применить их.

Качаем, ставим и открываем SharpKeys. Красотой не блещет, но функцию выполнит.

Вариант 1: настраиваем вручную

1. Нажимаем Add и в открывшемся окне видим два столбца: Map this Key и To this Key.

2. Кликаем Type Key в правом столбце, нажимаем Win на клавиатуре.

  1. Кликаем Type Key в левом столбце, нажимаем Ctrl. Закрываем окно, так мы описали функцию клавиши Win.
  2. Теперь делаем то же самое для Ctrl.
  3. По дороге можно настроить, где должна быть клавиша PrintScreen (F11)и Delete (F12). На компактных маковских клавиатурах нет Delete, а в условиях Windows она необходима.
  4. В основном окне нажимаем кнопку Write to Registry.

Вариант 2. загружаем настройки клавиш из файла .skl

SharpKeys позволяет сохранить заранее настроенные клавиши в файл сmd-fix.skl, который я выложил в телеграм-канал.

После любого из вариантов перезагружаемся.

После этого навсегда забываем про то, что Ctrl было неудобно нажимать.

Я веду телеграм-канал /designer об интерактивном дизайне, инструментах и проектировании.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *