I am using pynput based listener to detect and record mouse clicks using python.
def on_click(x, y, button, pressed):
if pressed:
on_release("clicked")
button = str(button).replace("Button.","")
inverted_comma = "'"
button = f"{inverted_comma}{button}{inverted_comma}"
mouse_values = [x, y, button]
macro_writer('click',mouse_values)
#image based click
time.sleep(1)
pyautogui.moveTo(1,1)
time.sleep(2)
x = x-50
y = y-50
im3 = pyautogui.screenshot(r"D:\Library\Project\Project\theautomater\src\macro\prett2.png",region=(x,y, 100 , 100))
I am able to record the coordinates of the mouse. Problem is I want to record the image/icon where the mouse clicks and as you can see the last line, I can do that but it happens AFTER the click. This creates the problem that the icon is in "clicked" or "hover" state.
The solution I am thinking of implementing is pausing the click function taking screenshot then clicking.
For this, I need to figure out how to delay the mouse click using python. Can anyone suggest something?
The other question on SO, does not work as intended (Delay mouse click 0.5 second), please do not mark as duplicate.