Как нажать кнопку с помощью пакетного файла?

мне нужно нажать кнопку "Сохранить" в приложении Adobe Air под названием Arthropod. Я могу запустить приложение в файле bat с помощью этого:

cd C:Program FilesArthropod
start /w Arthropod.exe

Как только он появляется, на пользовательском интерфейсе есть кнопка сохранения. Как я могу щелкнуть по нему файлом bat?

Я читал это:

http://www.ehow.com/how_7788761_press-buttons-batch-file.html

который показал, как имитировать клики в меню "Файл" и другие вкладки в MS Word, но как это делается на любой другой кнопке?

P. S. Текст на кнопке "Сохранить" это единственный уникальный идентификатор, я могу подумать на эту кнопку. Есть ли что-то пакетное, где я могу сказать что-то вроде (псевдо-код):

$('button[text="Save"]').click();

4 ответов


можно использовать AutoIt для этого. Вы можете сгенерировать скрипт, который нажмет на кнопку "Сохранить" и вызовет сгенерированный EXE-файл из пакетного файла.


нет собственного способа сделать это чисто.

но вы можете использовать VBS для имитации нажатия клавиш, если хотите, что-то похожее на AutoIT, но нигде не столь гибкое. С положительной стороны, вам не нужно загружать VBS. Он был включен в каждую версию Windows начиная с 95.


я включаю пример, который запускает notepad.exe, затем введите в него следующее:

Hello World!
abcDEF

.
Следующая строка называется LaunchNotepad.bat :

cscript /nologo LaunchNotepad.vbs

.
Ниже приводится содержание LaunchNotepad.vbs :

' Create WScript Shell Object to access filesystem.
Set WshShell = WScript.CreateObject("WScript.Shell")

' Start / Run NOTEPAD.EXE
WshShell.Run "%windir%\notepad.exe"

' Select, or bring Focus to a window named `NOTEPAD`
WshShell.AppActivate "Notepad"

' Wait for 5 seconds
WScript.Sleep 5000

WshShell.SendKeys "Hello World!"
WshShell.SendKeys "{ENTER}"
WshShell.SendKeys "abc"
WshShell.SendKeys "{CAPSLOCK}"
WshShell.SendKeys "def"

обратите внимание, что если есть один или несколько экземпляров Notepad.exe уже открыт, и для открытия Блокнота требуется более 5 секунд, приведенный выше код может выбрать последний активный экземпляр блокнота и ввести его.


для получения VBS код для работы, как вы хотите, вам нужно научиться перемещаться по Adobe Air с помощью клавиатуры. Обычно либо вкладки и / или клавиш со стрелками будет достаточно. Иногда вам может потребоваться использовать ALT ключ для перемещения в меню.

кроме того, вы можете фактически использовать ряд команд клавиатуры, таких как ALT+FS ENTER, или даже сочетание клавиш, как CTRL+S.

отправить TAB, ALT+F, и CTRL+S :

WshShell.SendKeys "{TAB}"        ' TAB                TAB Key
WshShell.SendKeys "%F"           ' ALT-F              (F)ile Menu
WshShell.SendKeys "^S"           ' CTRL-S             Save File
WshShell.SendKeys "%(Fa){ENTER}" ' ALT-F+ALT-A ENTER  (F)ile -> Save (A)s -> (ENTER)
WshShell.SendKeys "{UP}"         ' Up Arrow           Up Arrow
WshShell.SendKeys "{DOWN}"       ' Down Arrow         Down Arrow
WshShell.SendKeys "{LEFT}"       ' Left Arrow         Left Arrow
WshShell.SendKeys "{RIGHT}"      ' Right Arrow        Right Arrow

вы не можете автоматизировать нажатия кнопок с помощью файла bat. Если бы это было возможно, Вам все равно понадобился бы какой-то API для Adobe Air для доступа к самому элементу управления. Но если есть сочетание клавиш для этой кнопки, вы можете имитировать нажатия клавиш и отправить его в приложение.


Winbatch-это еще одна программа, которая может отправлять нажатия клавиш, но в отличие от AutoIt я не считаю, что это бесплатно.