2015-09-17 3 views
-2

Можно ли получить доступ к строке меню приложения с помощью пакетного скрипта? Мне нужно написать что-то, что после открытия приложения можно выбрать «Файл»> «Сохранить как».Доступ к меню с помощью сценария партии.

+1

Пакетные файлы не могут изначально взаимодействовать с ГПИ. С каким приложением вы пытаетесь взаимодействовать? – SomethingDark

+0

Возможно, вам может быть интересен AutoHotKey (посмотрите его в Интернете) ... – aschipfl

+0

Или функция SendKeys vbscript, если вы работаете и не можете установить стороннее программное обеспечение (но определенно попробуйте использовать AutoHotKey если вы можете, SendKeys, как известно, ненадежна). – SomethingDark

ответ

0

Пример сценария, который открывает файл в «Блокноте» и посылает нажатия клавиш: 1. Напишите текст. 2. Сохраните файл. 3. Закройте приложение «Блокнот». (3 раза подряд)

/! \ Обратите внимание, партия-скрипт будет посылать нажатия клавиш в приложении, есть фокус ./! \

@if (@CodeSection == @Batch) @then 
@echo off 
set "pr=_somefile.txt" 
if NOT exist %pr% COPY NUL %pr% 

rem Use %SendKeys% to send keys to the keyboard buffer 
set SendKeys=CScript //nologo //E:JScript "%~F0" 

for /L %%i in (1,1,3) do ( 
    rem Start notepad 
    start "" notepad %pr% 
    %SendKeys% "^{END}{ENTER}Hello, world! {(} started 1 line after the end of file {)}{ENTER}" 
    %SendKeys% "Typing on notepad few lines{ENTER}" 
    %SendKeys% "Saving the file{ENTER}^s" 
    %SendKeys% "closing notepad in 1 sec !{ENTER}{ENTER}...............................{ENTER}" 
    @timeout /T 1 /nobreak >NUL 
    %SendKeys% "^s" 
    %SendKeys% "^s%%{F4}" 
    @timeout /T 1 /nobreak >NUL 
) 
goto :EOF 

@end 
// JScript section 
var WshShell = WScript.CreateObject("WScript.Shell"); 
WshShell.SendKeys(WScript.Arguments(0)); 

Некоторые ссылки для чтения.
https://msdn.microsoft.com/en-us/library/aa266279(v=vs.60).aspx
http://social.technet.microsoft.com/wiki/contents/articles/5169.vbscript-sendkeys-method.aspx
http://ss64.com/vb/sendkeys.html

Кредит: https://stackoverflow.com/a/17050135

Смежные вопросы