Доброго дня autoit люди.
При автоматизации рабочего процесса в программе inDesign не получилось обойтись без функций библиотеки <ImageSearch.au3> т.к. многие элементы GUI индизайна не находятся через Window Info.
Ищу я элемент интерфейса который появляется уже после запуска скрипта автоматизации и скрипт не находит его по изображению. Но! если запустить только тот кусок скрипта который ищет элемент по изображению, когда элемент уже появился - скрипт его находит.
Кусочек кода который работает, когда элемент интерфейса уже появился.
Весь скрипт целиком.
При автоматизации рабочего процесса в программе inDesign не получилось обойтись без функций библиотеки <ImageSearch.au3> т.к. многие элементы GUI индизайна не находятся через Window Info.
Ищу я элемент интерфейса который появляется уже после запуска скрипта автоматизации и скрипт не находит его по изображению. Но! если запустить только тот кусок скрипта который ищет элемент по изображению, когда элемент уже появился - скрипт его находит.
Кусочек кода который работает, когда элемент интерфейса уже появился.
Код:
#include <ImageSearch.au3>
$x1=0
$y1=0
$result = _WaitForImageSearch("123.bmp",5,1,$x1,$y1,0)
if $result=1 Then
MouseMove($x1,$y1,3)
EndIf
Весь скрипт целиком.
Код:
#include <file.au3>
#include <ImageSearch.au3>
Func _ProgramFilesDir()
Local $ProgramFileDir
Switch @OSArch
Case "X32"
$ProgramFileDir = "Program Files"
Case "X64"
$ProgramFileDir = "Program Files (x86)"
EndSwitch
Return @HomeDrive & "\" & $ProgramFileDir
EndFunc ;==>_ProgramFilesDirh
$WhatchFolder = ("C:\hotfolder\list\a4\")
FileChangeDir($WhatchFolder)
$search = FileFindFirstFile("*.pdf")
; Check if the search was successful
If $search = -1 Then
MsgBox(0, "Error", "No files/directories matched the search pattern")
Exit
EndIf
$file = FileFindNextFile($search)
;MsgBox(4096, "File:", $file)
$FullPathFile =_PathFull($WhatchFolder & $file)
;MsgBox(4096, "File patch:", $FullPathFile )
;Проверка запущен ли уже InDesign.exe
If ProcessExists("InDesign.exe") = 0 Then
Run( @ProgramFilesDir & "\Adobe\Adobe InDesign CS5\InDesign.exe" )
EndIf
;Ожидание загрузки
WinWait("Adobe InDesign CS5","")
If Not WinActive("Adobe InDesign CS5","") Then WinActivate("Adobe InDesign CS5","")
WinWaitActive("Adobe InDesign CS5","")
Send("{CTRLDOWN}o{CTRLUP}")
WinWait("Open a File","")
If Not WinActive("Open a File","") Then WinActivate("Open a File","")
WinWaitActive("Open a File","")
ControlSend("Open a File", "", "[CLASS:Edit; INSTANCE:1]", "C:\hotfolder\indd_template\H_A4_2p_1mm_bleed_so.indd")
Send("{TAB}{TAB}{ENTER}")
WinWait("H_A4_2p_1mm_bleed_so.indd","")
If Not WinActive("H_A4_2p_1mm_bleed_so.indd","") Then WinActivate("H_A4_2p_1mm_bleed_so.indd","")
WinWaitActive("H_A4_2p_1mm_bleed_so.indd","")
WinWait("H_A4_2p_1mm_bleed_so.indd @ 65%","HWNDBasedPanelView U")
If Not WinActive("H_A4_2p_1mm_bleed_so.indd @ 65%","HWNDBasedPanelView U") Then WinActivate("H_A4_2p_1mm_bleed_so.indd @ 65%","HWNDBasedPanelView U")
WinWaitActive("H_A4_2p_1mm_bleed_so.indd @ 65%","HWNDBasedPanelView U")
$x1=0
$y1=0
MsgBox(0,"Trying to search image","")
$result = _WaitForImageSearch("123.bmp",5,1,$x1,$y1,0)
if $result=1 Then
MouseMove($x1,$y1,3)
MsgBox(0,"Found","")
EndIf
Send("{CTRLDOWN}{ALTDOWN}o{ALTUP}{CTRLUP}")
WinWait("Relink: C:\hotfolder\pdf_blank\A4_v_2p_1mm_bleed.pdf","")
If Not WinActive("Relink: C:\hotfolder\pdf_blank\A4_v_2p_1mm_bleed.pdf","") Then WinActivate("Relink: C:\hotfolder\pdf_blank\A4_v_2p_1mm_bleed.pdf","")
WinWaitActive("Relink: C:\hotfolder\pdf_blank\A4_v_2p_1mm_bleed.pdf","")
ControlSend("Relink: C:\hotfolder\pdf_blank\A4_v_2p_1mm_bleed.pdf", "", "[CLASS:Edit; INSTANCE:1]", $FullPathFile)
MsgBox(4096, "File patch:", $FullPathFile )
ControlCommand ( "Relink: C:\hotfolder\pdf_blank\A4_v_2p_1mm_bleed.pdf", "&Show Import Options", "[CLASS:Button; INSTANCE:5]", "UnCheck" , "" )
ControlCommand ( "Relink: C:\hotfolder\pdf_blank\A4_v_2p_1mm_bleed.pdf", "&Show Import Options", "[CLASS:Button; INSTANCE:8]", "UnCheck" , "" )
MsgBox(4096, "File patch:", $FullPathFile )
Send("{ENTER}")