Ситуация: Adobe Illustrator CC 2014 (v. 18), нужно вызвать из палитры Actions два экшна:
1. Экшн, которому назначена комбинация клавиш Ctrl+Shift+F2,
2. Экшн, от которого есть только название Black Background.
Кнопкой 1 в скрипте пытаюсь отправить комбинацию. Видно, что окно Иллюстратора стало активным, но экшн не запустился. Для сравнения, по кнопке 3 меню Иллюстратора через Alt прекрасно вызывается. В данном случае знать подробности об окне Actions не нужно, имхо. Значит, я неправильно понял мануал, или пользуюсь не той командой?
По второй части перепробовал разное, и не вижу перспектив. О палитре Actions известно: класс окна OWL.Dock, класс контрола DroverLord - Window Class, и еще известно Instance 2, но это значение не уникальное. К тому же, в Иллюстраторе есть и другие палитры с DroverLord - Window Class. В общем, уникальным является только название экшна - Black Background, как бы именно по нему вызвать экшн?
Пожалуйста, посоветуйте, в какую сторону копать. И да, это моя первая попытка применения AutoIT. Может быть, без скриптинга в Иллюстраторе вообще не решить п. 2?
Спасибо.
1. Экшн, которому назначена комбинация клавиш Ctrl+Shift+F2,
2. Экшн, от которого есть только название Black Background.
Код:
; Запуск Actions в Иллюстраторе
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <WinAPI.au3>
$hMain_GUI = GUICreate('AI Action Starter', 190, 200, 100, 100, BitOR($GUI_SS_DEFAULT_GUI, $WS_SIZEBOX), $WS_EX_TOPMOST)
GUISetState(@SW_SHOW, $hMain_GUI)
Local $idButton1= GUICtrlCreateButton("Экшн с ГорКлавишей", 20, 30, 150, 25)
Local $idButton2= GUICtrlCreateButton("Экшн без ГорКлавиши", 20, 80, 150, 25)
Local $idButton3= GUICtrlCreateButton("Меню", 20, 130, 150, 25)
Func _ActHotKey()
;ожидание, пока окно станет активным
Local $handle = WinWaitActive("[CLASS:illustrator]", "");
;мигание окна
WinFlash($handle);
sleep(200)
Send("{LCTRL}{LSHIFT}{F2}")
EndFunc
Func _ActByName()
;
EndFunc
Func _Menu3()
; Select All
;ожидание пока окно станет активным
Local $handle = WinWaitActive("[CLASS:illustrator]", "");
sleep(200)
Send('!s')
sleep(200)
Send('a')
sleep(200)
Send('{ENTER}')
EndFunc
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $idButton1
; Послать Ctrl+Shift+F2 в Иллюстратор
_ActHotKey()
Case $idButton2
; Запустить Action по имени
_ActByName()
Case $idButton3
; Меню
_Menu3()
EndSwitch
WEnd
Кнопкой 1 в скрипте пытаюсь отправить комбинацию. Видно, что окно Иллюстратора стало активным, но экшн не запустился. Для сравнения, по кнопке 3 меню Иллюстратора через Alt прекрасно вызывается. В данном случае знать подробности об окне Actions не нужно, имхо. Значит, я неправильно понял мануал, или пользуюсь не той командой?
По второй части перепробовал разное, и не вижу перспектив. О палитре Actions известно: класс окна OWL.Dock, класс контрола DroverLord - Window Class, и еще известно Instance 2, но это значение не уникальное. К тому же, в Иллюстраторе есть и другие палитры с DroverLord - Window Class. В общем, уникальным является только название экшна - Black Background, как бы именно по нему вызвать экшн?
Пожалуйста, посоветуйте, в какую сторону копать. И да, это моя первая попытка применения AutoIT. Может быть, без скриптинга в Иллюстраторе вообще не решить п. 2?
Спасибо.