Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is AppleScript UI Scripting very slow in general, or is it my script, or something else?

Tags:

applescript

I'm new to AppleScript, and am just diving into UI Scripting. I'm attempting to create a script for the program TypeIt4Me, which is a menu bar utility (text expansion) that has no AppleScript support.

My proposed script would utilize System Events to click its menu bar icon, type down five times, right once, and Return. However, AppleScript pauses for a long time between clicking the icon and performing the first keystroke, to the point that this is impractical as a script. Below is the version that has the first click and one down press.

tell application "System Events"

click menu bar item 1 of menu bar 2 of application process "TypeIt4Me"
key code 125 -- ie "down"

end tell

Could this be a problem with my code? A setting somewhere? AppleScript in general? Thanks.

like image 396
Stephen Palkot Avatar asked Nov 02 '22 22:11

Stephen Palkot


1 Answers

Your script also takes about 5 seconds to run for me. Delays like that are not very common though.

This made the script return after about 0.05 seconds, but I couldn't figure out how to run a key code command after it without the delay.

ignoring application responses
    tell application "System Events" to tell process "TypeIt4Me"
        click menu bar item 1 of menu bar 2
    end tell
end ignoring

This didn't work either:

with timeout of 0.2 seconds
    try
        tell application "System Events" to tell process "TypeIt4Me"
            click menu bar item 1 of menu bar 2
        end tell
    end try
end timeout
tell application "System Events"
    key code 125
end tell

Terminating System Events between the commands did work though:

ignoring application responses
    tell application "System Events" to tell process "TypeIt4Me"
        click menu bar item 1 of menu bar 2
    end tell
end ignoring
do shell script "killall System\\ Events"
delay 0.1
tell application "System Events"
    key code 125
end tell
like image 65
Lri Avatar answered Dec 26 '22 12:12

Lri