Автоматизация нажатий клавиш
Есть некоторые программы, которые не имеют возможности вызова через командную строку, но автоматизировать работу все равно надо.
Тут можно конечно использовать продукт, наподобие AutoIT!, но это для начинающих может оказаться сложным. Есть более простой метод, через VBS скрипт.
Внизу приложен небольшой скрипт, который запускает файл C:\superprogramma.exe, ждет 5 секунд (WScript.Sleep 5000), затем начинает выдавать комбинации клавиш в активное окно приложения. Скрипт вызывается командой:
cscript send.vbs
Список спецкодов можно посмотреть тут.
Set WshShell = CreateObject("WScript.Shell")
Set WshExec = WshShell.Exec("C:\superprogramma.exe")
WScript.Sleep 5000
WshShell.AppActivate(WshExec.ProcessID)
WSHShell.SendKeys "+{F7}"
WScript.Sleep 5000
WSHShell.SendKeys "%"
WSHShell.SendKeys "{DOWN}{LEFT}{LEFT}{LEFT}{LEFT}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{ENTER}"
WScript.Sleep 60000
WSHShell.SendKeys "{ENTER}%{F4}"
Также можно отправлять целые тексты в окна приложений:
WSHShell.SendKeys "Также можно отправлять целые тексты в окна приложений:"
Для того, чтобы не лазить по страницам и не искать, я привожу список кодов тут:
Описание: каждая клавиша задаётся своим символом. Например, чтобы задать нажатие друг за другом клавиш А, Б и В, нужно указать в качестве параметра строку "АБВ". Некоторые специальные символы следует всегда задавать заключёнными в фигурные скобки. Перечень таких символов:{+} {^} {%} {~} {(} {)} {[} {]} {{} {}}
Задание неотображаемых символов и специальных клавиш:
<Backspace> - {BACKSPACE} или {BS} или {BKSP}
<Break> - {BREAK}
<Caps Lock> - {CAPSLOCK}
<Delete> - {DELETE} или {DEL}
<End> - {END}
<Enter> - {ENTER} или ~
<Esc> - {ESC}
<Home> - {HOME}
<Insert> - {INSERT} или {INS}
<Num Lock> - {NUMLOCK}
<Page Down> - {PGDN}
<Page Up> - {PGUP}
<Print Screen> - {PRTSC}
<Scroll Lock> - {SCROLLLOCK}
<Tab> - {TAB}
<Up Arrow> - {UP}
<Left Arrow> - {LEFT}
<Down Arrow> - {DOWN}
<Right Arrow> - {RIGHT}
<F1> - {F1}
<F2> - {F2} и т.д.
<Shift> - +
<Ctrl> - ^
<Alt> - %
Можно использовать скобки. Например, нажатие клавиш <G> и <S> при нажатом <Shift> следует записывать как "+(GS)". Запись "+GS" приведёт к нажатию клавиши <G> при нажатом <Shift>, а затем клавиши <S> уже без <Shift>.
Задание нескольких нажатий: "{LEFT 42}" приведёт к нажатию клавиши <Left Arrow> 42 раза подряд, "{h 10}" приведёт к нажатию клавиши <h> 10 раз подряд.
Метод не может быть использован для посылки нажатий клавиш в приложения MS-DOS.