Как нажать кнопку с помощью пакетного файла?
мне нужно нажать кнопку "Сохранить" в приложении 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 я не считаю, что это бесплатно.