So I've been trying to make a program using AppleScript, but there's one thing that's been teasing me for some time now - How do I make the mouse click at current location without using Mouse Keys?

Also, is it possible to simulate a long click (that means I set the length of it)?


2 Answers 2


You can simulate a mouse click with AppleScript code like this:

tell application "System Events"
  click at {123,456}
end tell

This means to simulate a click of the mouse at coordinate (123,456).

To click at the current location you'll need to first find the current location of the mouse pointer, if you don't know it already. This is not easily done with AppleScript itself, so a neat way is to use the third party tool "MouseTools".

You can download it for free here.

On the download webpage you'll find an AppleScript example for getting the current mouse coordinates.

  • is it capable of long clicking? Dec 30, 2016 at 12:16
  • also, you said it isn't easily done, does that mean it is possible w/out MouseTools? it'd be awesome if it worked on other computers which don't have MT downloaded, else I'd have to bundle it w/ my program Dec 30, 2016 at 12:19
  • and one more thing - you seem smart about AppleScript - would you please check out my unanswered questions? I have a feeling you might know the answers - thanks Dec 30, 2016 at 12:22
  • @ProkopHanzl It is both easily done and possible yes. I said it was not easy WITHOUT MouseTools (or similar), but with MouseTools it is very easy. Without MouseTools you would have to find your own solution.
    – jksoegaard
    Dec 30, 2016 at 13:07
  • 4
    To supplement @jksoegaard's answer: one can also find cursor positions using "Screenshot" tool, which may be activated by Cmd+Shift+4 shortcut. Then just point the cursor to any area and remember the numbers that is shown near the pointer. Jan 26, 2020 at 9:10

Long click is much easier with Hammerspoon, place something like this inside init.lua and reload:

hs.hotkey.bind({"alt"}, "L", function()
  hs.eventtap.leftClick(hs.mouse.getAbsolutePosition(), 500000)

This will (on typing keyboard shortcut Alt+L): left click on the current mouse cursor position, with half a second delay between click down and up.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .