Barton
Barton

Reputation: 363

How can one invoke a keyboard shortcut from within an AppleScript?

I need to invoke a keyboard shortcut from within an AppleScript code, e.g. Cmd+Ctrl+Opt+E.

Upvotes: 36

Views: 43790

Answers (4)

Kristian
Kristian

Reputation: 31

activate application "Safari"

delay 3
tell application "System Events"
    keystroke "t" using {command down}
    delay 2
    keystroke "www.google.com"
    key code 36
end tell

Upvotes: 1

Michael Sanders
Michael Sanders

Reputation: 107

depending on what you wish the keyboard shortcut to be you would use key stroke events for example

tell application "System Events" keystroke "e" using {command down, option down, control down} end tell

replace the "e" from after key stroke with what word or words you wish to input and then change the {command down, option down, control down} to which keys you wish to be activated at the same time.

thankyou

Upvotes: 2

Alex Zavatone
Alex Zavatone

Reputation: 4323

You can invoke the keystroke, or if GUI Scripting is on, you can select a menu item from a menu.

Here's a great link explaining this in detail.

http://hints.macworld.com/article.php?story=20060921045743404

Upvotes: 4

regulus6633
regulus6633

Reputation: 19032

Sure it works. System events can perform keystrokes. However, keystrokes are always sent to the frontmost application so to perform a shortcut for an application you must tell that app to activate first and then perform the shortcut. For example, I can open a new tab in Safari using command-t. That applescript would look like this...

tell application "Safari" to activate
tell application "System Events"
    keystroke "t" using command down
end tell

Now suppose you have a global keyboard shortcut. Global meaning it works from any application. Then you don't even need to activate an application first, just perform the keystroke. To press the keys you requested do this...

tell application "System Events"
    keystroke "e" using {command down, option down, control down}
end tell

Upvotes: 66

Related Questions