|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Определение нажатой клавиши |
|
|
CMD/BAT - Определение нажатой клавиши
|
Новый участник Сообщения: 4 |
У меня вопрос к знающим людям - может ли батник определить, какая клавиша была нажата по его запросу? Ну или хотя бы отличить как-то нажатие на Enter от всех остальных клавиш?
|
|
Отправлено: 16:48, 26-04-2012 |
Ветеран Сообщения: 12426
|
Профиль | Отправить PM | Цитировать |
Последний раз редактировалось Morpheus, 26-04-2012 в 19:39. Отправлено: 19:26, 26-04-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Ситуация такая: выводится некоторая информация, для продолжения работы скрипта нужно нажать кнопку Enter, для выхода - любую другую. Choice тут не подходит, к сожалению...
|
Отправлено: 20:02, 26-04-2012 | #3 |
Ветеран Сообщения: 12426
|
Профиль | Отправить PM | Цитировать |
Отправлено: 20:38, 26-04-2012 | #4 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Morpheus, так я уже пытался извернутся. При нажатии на Enter мы действительно получим пустую переменную, а в противном случае консоль будет дожидаться, пока мы не завершим ввод переменной. Не совсем то, что нужно...
|
|
Отправлено: 20:46, 26-04-2012 | #5 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Enforcer7,
1. Вам обязательно реализацию встроенными средствами? 2. Простое «Y/N» в «choice.exe » — вместо «Enter/Any key» — Вас никак не устраивает? 3. Что скажете насчёт использования PowerShell? |
Отправлено: 02:38, 27-04-2012 | #6 |
Старожил Сообщения: 415
|
Профиль | Отправить PM | Цитировать Enforcer7, используйте утилиту hs_readkey из набора утилит hs_packet. В сети живой ссылки не нашел, поэтому залил вам на файлообменник. Сканкод Enter'а = 13.
|
Последний раз редактировалось Anonymоus, 27-04-2012 в 08:49. Отправлено: 08:42, 27-04-2012 | #7 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Конечно, хотелось бы решить эту проблему встроенными средствами... Все-таки не всегда получается использовать дополнительные утилиты...
|
Отправлено: 10:50, 28-04-2012 | #8 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Enforcer7, хотелось бы услышать ответы и на остальные вопросы (2 и 3).
|
Отправлено: 11:10, 28-04-2012 | #9 |
Старожил Сообщения: 415
|
Профиль | Отправить PM | Цитировать 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 |
Отправлено: 20:56, 28-04-2012 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] Отслеживание нажатий клавиш на клавиатуре (чтоб узнать код нажатой клавиши) | beve | AutoIt | 17 | 23-03-2015 02:14 | |
Javascript и определение нажатой клавиши (не символа) | Dr.Dark | Вебмастеру | 6 | 05-10-2011 12:54 | |
Службы - Горячие клавиши | Samvel2 | Microsoft Windows 7 | 1 | 28-07-2010 22:55 | |
курсор мыши defender 2220 не двигается при нажатой клавише клавиатуры BTC 6300C | Nikitaez | Железо в Linux | 8 | 05-02-2008 02:11 | |
Как назначить кнопкам джойстика функцию нажатой клавиши на клаве. | spiritmen | Игры | 4 | 05-06-2007 13:44 |
|