Нажмите клавиши клавиатуры, используя командный файл

Я пытаюсь разработать командный файл, который может автоматически нажимать стрелку влево и клавишу со стрелкой вправо 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.

редактировать: просто, чтобы помочь вам начать, вы можете посмотреть здесь:

  1. Автоматизируйте задачи с помощью метода SendKeys хоста скриптов Windows
  2. Полезная ветка про SendKeys
Другие вопросы по тегам