Joeg Posted October 14, 2016 Posted October 14, 2016 I don't know if Alfred can do this, and if not, can someone recommend any other app? -- I use an application at work where I have to click and select a menu choice many times a day. It's not a top menu choice like FILE or EDIT, it's actually in a sidebar menu. Is there some way to record the mouse clicks so that I can recreate them with a keyboard hot key? Does that make sense? Thanks.
vitor Posted October 14, 2016 Posted October 14, 2016 Yes, you can do it with Alfred, specifically through AppleScript. Depending on the application itself, it might support AppleScript (how to find out) in a way that you can tell it to click the exact menus you want by name. If the application does not support it and the menus are always in the same location, you can click specific coordinates on the screen with something like tell application "System Events" to click at {254, 47}. To get those coordinates, press ⌘⇧4 to enter the mode to take screenshots where it will indicate the current cursor position. Use delay to wait some time between clicks. Your final code might look something like this: tell application "System Events" click at {254, 47} delay 1 click at {100, 200} end tell Here’s a workflow to get you started.
Joeg Posted October 15, 2016 Author Posted October 15, 2016 Wow, thanks Vitor for pointing me in the right direction and giving me something to start with. I will work on it.
deanishe Posted October 16, 2016 Posted October 16, 2016 (edited) On 15/10/2016 at 1:43 AM, vitor said: Depending on the application itself, it might support AppleScript (how to find out) in a way that you can tell it to click the exact menus you want by name. Don't think it's relevant here, but FWIW, as far as clicking items in the menubar goes, the application itself doesn't need to support AppleScript, as this is one of those things, like activate or open, that's handled by the system (System Events does the menu clicking thing). It even works on non-native apps, like Sublime or Atom, as these still use the native menu system under the hood. For example, here's how to show Sublime's console: tell application "Sublime Text" activate end tell tell application "System Events" tell process "Sublime Text" tell menu bar 1 tell menu bar item "View" tell menu "View" click menu item "Show Console" end tell end tell end tell end tell end tell The major issue with this technique, imo, is that it's tied to a specific language, by which I mean English, not AppleScript. Edited October 16, 2016 by deanishe
Joeg Posted October 17, 2016 Author Posted October 17, 2016 Vitor, I tried your little script and put in my screen coordinates, but nothing happens. I'm typing the keyword "clicker" in Alfred. I'm totally inexperienced at this scripting so I don't know what else to try or how to troubleshoot. This is a custom application with sidebar menus that I wouldn't think are handled by the system. What I'm understanding is that running this script should produce the same result as me clicking on that menu choice. Attaching my script and what the menu items look like that I'm working with. Thanks.
deanishe Posted October 17, 2016 Posted October 17, 2016 The coordinates are relative to the screen, not the active window (i.e. your script clicks 70, 150 pixels from the top left of the screen, not the top left of the active window). You need to add your X and Y to the position of the window. This function clicks on the frontmost window using window-relative coordinates: -- Click relative to location of frontmost window on clickInWindow(X, Y) tell current application to set theBounds to the bounds of front window set posX to (item 1 of theBounds) + X set posY to (item 2 of theBounds) + Y tell application "System Events" to click at {posX, posY} end clickInWindow clickInWindow(70, 150) delay 1 clickInWindow(160, 230)
Joeg Posted October 17, 2016 Author Posted October 17, 2016 I'm on the frontmost window, the coordinates are of the screen, which I got using ⌘⇧4 to get my cursor position. So in this little script you posted, am I suppose to insert any information or use it as is. I tried and still nothing happens.
deanishe Posted October 17, 2016 Posted October 17, 2016 There's no point using it if your window is always in the same position. That script just allows you to click in the right place regardless of where the window is on screen. I think you need to allow Alfred to use Accessibility features (System Preferences > Security & Privacy > Accessibility) to let it run scripts that click on other apps.
Joeg Posted October 17, 2016 Author Posted October 17, 2016 I do have the Accessibility feature turned on for Alfred. I don't know why the click command isn't working
deanishe Posted October 17, 2016 Posted October 17, 2016 Does it work on other applications? If so, you probably need to talk to the developers of the offending app.
Joeg Posted October 17, 2016 Author Posted October 17, 2016 So this is what I find -- this clicker script works over the system preferences menu, or the Alfred preferences menu, but does not work on the sidebar choices of a finder window, or a file icon
deanishe Posted October 18, 2016 Posted October 18, 2016 I tried doing this with Keyboard Maestro and using the Quartz API directly (which is probably what they all use under the hood anyway). Seems to be impossible
Joeg Posted October 18, 2016 Author Posted October 18, 2016 I found a little app that does just what I was looking for, so I'll share it here: http://www.murgaa.com/mac-auto-mouse-click/ Thanks for your help.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now