This is an old revision of the document!
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases. #Warn ; Enable warnings to assist with detecting common errors. SendMode Input ; Recommended for new scripts due to its superior speed and reliability. SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
; submenuname: The name of the Plug-ins submenu (where the plug-in is located) within quotes. Use “” for the root Plug-in menu. ; pluginname: The name of the plug-in name and window title (supply it within quotes) ; containerindex: The 1-based container from the top. Top container is 1, second container is 2, etc. ; taskindex: The 1-based task from the top of the container. First task is 1, second task is 2, etc. openJWpluginwindow(submenuname, pluginname, containerindex, taskindex) { ; open plugin window (from submenu or root Plug-in menu)
if (submenuname = "") { WinMenuSelectItem, Finale 201, , Plug-ins, %pluginname% ; Root Plug-ins menu } else { WinMenuSelectItem, Finale 201, , Plug-ins, %submenuname%, %pluginname% ; Submenu in Plug-ins menu }
; Wait for max 1 second for the plug-in window to open
WinWaitActive %pluginname%, ,1 if ErrorLevel { return 0 ; fail }
; Set focus to the tree view
WinActivate %pluginname% ControlFocus SysTreeView321, %pluginname% if (ErrorLevel) { return 0 }
; Collapse all containers
Send {Home} Loop 20 { Send {NumpadSub}{Down} }
; Move up to first container
Send {Home}
; Move down to the correct container
containerloop := containerindex - 1 Loop %containerloop% { Send {Down} } Send {NumpadAdd}
; Expand the container
Send {NumpadAdd}
; Select the task in the container
Loop %taskindex% { Send {Down} } return 1 ; Success
}
setJWpluginpanelvalue(pluginname, panelitemnumber, value) {
ControlFocus SysTreeView321, %pluginname% if (ErrorLevel) { return 0 }
; Tab to the panel item
Loop %panelitemnumber% { Send {Tab} }
; Allow the new control to get focus, which take some time…
Sleep 20
ControlGetFocus controlvar, %pluginname% IfInString controlvar, Button { ; *** Checkbox *** if (value = 0) Control Uncheck, ,%controlvar% else Control Check, ,%controlvar% } IfInString controlvar, ComboBox { ; *** Pull-down list - 1-based list index *** Control Choose, %value%, %controlvar% } IfInString controlvar, Edit { ; *** Edit - set the text ** ControlSetText %controlvar%, %value% sleep 20 ; a little sleep here as well, since multiple edit boxes seem to need it }
; MsgBox %controlvar%
return 1
}
applyandcloseJWpluginwindow(pluginname) {
WinActivate %pluginname% if (ErrorLevel) { return 0 } ControlFocus SysTreeView321, %pluginname% if (ErrorLevel) { return 0 } Send {Enter} sleep 50 WinClose %pluginname%
}
#IfWinActive, ahk_class Finale
if (openJWpluginwindow(“”, “JW Meter and Rhythm”, 5, 1) = 1) {
setJWpluginpanelvalue("JW Meter and Rhythm", 1, 1) applyandcloseJWpluginwindow("JW Meter and Rhythm")
} return