Нажмите клавиши клавиатуры, используя командный файл
Я пытаюсь разработать командный файл, который может автоматически нажимать стрелку влево и клавишу со стрелкой вправо n раз с некоторой паузой между ними. Кто-нибудь может помочь мне с этим?
PS: я пытался установить программное обеспечение автоматической клавиатуры, но я не мог установить их, так как я был на работе. Мне нужна эта программа для работы на моем офисном ПК.
2 ответа
Вот Это Да! Это означает, что вы должны выучить другой язык программирования, чтобы отправить две клавиши на клавиатуру? Есть более простые способы достичь того же. :-)
Приведенный ниже пакетный файл является примером запуска другой программы (в данном случае cmd.exe), отправки ему команды, а затем отправки клавиши со стрелкой вверх, которая приводит к восстановлению последней выполненной команды. Пакетный файл достаточно прост, чтобы его можно было понять без проблем, поэтому вы можете изменить его в соответствии со своими потребностями.
@if (@CodeSection == @Batch) @then
@echo off
rem Use %SendKeys% to send keys to the keyboard buffer
set SendKeys=CScript //nologo //E:JScript "%~F0"
rem Start the other program in the same Window
start "" /B cmd
%SendKeys% "echo off{ENTER}"
set /P "=Wait and send a command: " < NUL
ping -n 5 -w 1 127.0.0.1 > NUL
%SendKeys% "echo Hello, world!{ENTER}"
set /P "=Wait and send an Up Arrow key: [" < NUL
ping -n 5 -w 1 127.0.0.1 > NUL
%SendKeys% "{UP}"
set /P "=] Wait and send an Enter key:" < NUL
ping -n 5 -w 1 127.0.0.1 > NUL
%SendKeys% "{ENTER}"
%SendKeys% "exit{ENTER}"
goto :EOF
@end
// JScript section
var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.SendKeys(WScript.Arguments(0));
Список имен ключей для SendKeys см. По адресу: http://msdn.microsoft.com/en-us/library/8c6yea83(v=vs.84).aspx
Например:
LEFT ARROW {LEFT}
RIGHT ARROW {RIGHT}
Дальнейшее объяснение этого решения смотрите в разделе: GnuWin32 openssl s_client conn к серверу WebSphere MQ, не закрывающемуся в EOF, зависает
Просто чтобы прояснить, вы хотите запустить программу из командного файла и затем нажать на командный файл (в вашем примере клавиши со стрелками) в этой запущенной программе?
Если это так, вы не сможете сделать это просто с помощью ".bat" файла, так как запущенный остановит пакетный файл от продолжения до его завершения -
Моей первой рекомендацией было бы использовать что-то вроде AutoHotkey или AutoIt, если это возможно, просто потому, что у них обоих есть активные форумы, на которых вы найдете бесчисленные примеры людей, запускающих приложения и нажимающих клавиши, не говоря уже об инструментах, которые просто "записывают" то, что вы хотите делать. Однако вы сказали, что это рабочий компьютер, и вы не сможете загрузить стороннюю программу... но у вас не без вариантов.
Вы можете использовать Windows Scripting Host из чего-то вроде файла.vbs для запуска программы и отправки ключей этому процессу. Если вы используете версию Windows, которая включает PowerShell 2.0 (Windows XP с пакетом обновления 3, Windows Vista с пакетом обновления 1, Windows 7 и т. Д.), Вы можете использовать Windows Scripting Host в качестве объекта COM из сценария PS или использовать Взаимодействующий класс VB.
Детали того, как это сделать, выходят за рамки этого ответа, но вы можете найти множество примеров, используя методы, которые я только что описал, выполнив поиск в SO или Google.
редактировать: просто, чтобы помочь вам начать, вы можете посмотреть здесь: