Reputation: 363
I need to invoke a keyboard shortcut from within an AppleScript code, e.g. Cmd+Ctrl+Opt+E.
Upvotes: 36
Views: 43790
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
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
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
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