Take the 2-minute tour ×
Ask Different is a question and answer site for power users of Apple hardware and software. It's 100% free, no registration required.

Is it possible via Automator, an app, applescript, etc. to automatically press a key (i.e. "g") every 60 seconds?

share|improve this question

2 Answers 2

up vote 5 down vote accepted

You can do this in AppleScript, iff you've enabled access for assistive devices:

tell application "System Events" to keystroke "," using command down

This will (obviously) invoke cmd-,.

If, for some reason, you can't enable access for assistive devices, then it's pretty easy to do this in code (by creating a CGEventRef and then posting it to the system, essentially). If you'd like help with that, then head over to stackoverflow.com, where that question has been asked a few times.

As for getting this to happen every 60 seconds, you could turn it into a launch agent and let launchd do it for you:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
 "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.stackexchange.apple.12692</string>
    <key>Program</key>
    <string>/usr/bin/osascript</string>
    <key>ProgramArguments</key>
    <array>
        <string>osascript</string>
        <string>-e</string>
        <string>tell application "System Events" to keystroke "," using command down</string>
    </array>
    <key>ServiceDescription</key>
    <string>Auto Keypress</string>
    <key>StartCalendarInterval</key>
    <dict>
        <key>Second</key>
        <integer>0</integer>
    </dict>
</dict>
</plist>

Toss that in ~/Library/LaunchAgents and you should be good to go (once you load the plist and/or log out and log back in).

share|improve this answer
    
@Dave thanks for your reply, unfortunately I can't seem to get this working. I've enabled access for AD and saved your XML as a .plist file in my USER/Library/LaunchAgents folder. Logged out back in, opened TextEdit and let it run for a couple minutes. No comma "," key was pressed. What am I doing wrong? –  Ryan Apr 25 '11 at 1:16
    
@Ryan it's possible I might have messed up the plist slightly, but it seems to work for me on my system. You can also try doing launchctl load ~/Library/LaunchAgents/filename.plist in Terminal to explicitly load it. –  Dave DeLong Apr 25 '11 at 1:38
    
@Dave - that did the trick. Thank you! One last question: how can I change it from "Command"+"," to simply "g"? I tried editing the .plist file but nothing seems to change the behavior. –  Ryan Apr 25 '11 at 6:29
    
@Ryan when you change the plist, you'll have to "unload" it and "load" it again. –  Dave DeLong Apr 25 '11 at 13:53
    
@Dave How exactly do I do that? Just change your Terminal command (above) from "load" to "unload"? –  Ryan Apr 25 '11 at 17:16

Use the "Watch Me Do" to enter "G," then use the pause action to pause for 60 sec, then the loop action and select "Loop Automatically."

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.