Python Forum
How to trigger a function by clicking the left mouse click?
Thread Rating:
  • 2 Vote(s) - 2.5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
How to trigger a function by clicking the left mouse click?
#1
I want to start off by saying that I am new to Python so I am sorry if this question is going to sound stupid to you.

I am just looking for an easy way to trigger a function whenever I press the left click of my mouse. Could anyone illustrate me how to achieve this? Examples are greatly appreciated.

My code now:

import win32api
import win32con
import time
from random import randint
#import pygame

#pygame.init()

def mouseClick():
   win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
   time.sleep(0.005)
   win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)


while True :
   if win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,0,0,0,0):
       time.sleep(0.03)
       mouseClick()
       time.sleep(0.3)
That's what I've done so far, but that doesn't work as python starts clicking thousands times per second.
Reply
#2
win32api.mouse_event doesn't check the state of something, it just does that thing.  So in your while loop, you're not checking if the left mouse button is down, you're just setting it to be down over and over.

Instead of mouse_event, you should probably use GetAsyncKeyState(), and instead of the event code MOUSEEVENTF_LEFTDOWN, you should use VK_LBUTTON (the mouse is part of the "virtual keyboard", thus the prefix VK).

Here's a small sample:
>>> def is_mouse_down():
...   key_code = win32con.VK_LBUTTON
...   state = win32api.GetAsyncKeyState(key_code)
...   return state != 0
...
# now for some intense mouse-clicking to test
>>> for _ in range(10):
...   print(is_mouse_down())
...   time.sleep(1)
...
False
False
True
False
True
True
False
True
False
True
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Pandas, How to trigger parallel loop Mekala 4 1,086 Oct-29-2020, 12:58 PM
Last Post: Mekala
  Explanation of the left side of this statement please rascalsailor 3 1,078 Sep-09-2020, 02:02 PM
Last Post: rascalsailor
  Move mouse and click in particular position biprabu 3 977 Sep-01-2020, 08:23 PM
Last Post: deanhystad
  How to left align logging messages Mekala 3 1,906 Jun-28-2020, 04:04 PM
Last Post: bowlofred
  Slide show with mouse click pausing aantono 1 943 Jan-28-2020, 04:25 AM
Last Post: Larz60+
  How to left align the columns SriRajesh 6 1,876 Dec-28-2019, 04:04 PM
Last Post: SriRajesh
  mouse 0.7.0 - mouse polling hate 125-1000hz penahuse 1 1,027 Dec-06-2019, 09:51 PM
Last Post: Larz60+
  How to trigger python script twice a day SriMekala 1 1,888 Aug-30-2019, 01:31 AM
Last Post: scidam
  Using IDLE, bug when clicking code StarBasket 4 1,142 Jul-31-2019, 12:30 PM
Last Post: Malt
  How to automate the clicking of GUI's menu? Hypermesher 3 1,653 Jul-26-2019, 08:55 AM
Last Post: Malt

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020