14
votes

I want a script where pressing F1 makes AutoHotkey hold down the left mouse button. I then want the script to release the mouse once I press the key again.

How can I do that?

3
To those willing to close the thread: this is a programming question, AutoHotkey is a programming language.PhiLho
@PhiLho: Thanks for pointing that out. I nearly closed this myself.Bill the Lizard
@Pizza Overflow: You might want to consider including a short code snippet in AHK questions to avoid any confusion. If you just include a short bit of code showing what you've tried so far, that should be enough that people won't mistakenly close your questions as "not programming related."Bill the Lizard

3 Answers

14
votes

I would use Click down and Click up

Click is generally preferred over MouseClick because it automatically compensates if the user has swapped the left and right mouse buttons via the system's control panel.

F1::
    alt := not alt
    if (alt)
    {
        Click down
    }
    else
    {
        Click up
    }
Return
6
votes

Here is a one-liner in case anyone is interested:

F1::Click % GetKeyState("LButton") ? "Up" : "Down"
0
votes

Mmm, I am a bit rusty in AHK programming, but here is what I tried, seems to work:

F1::
  alt := not alt
  If (alt)
  {
    MouseClick Left, 217, 51, , , D
  }
  Else
  {
    MouseClick Left, 217, 51, , , U
  }
Return