Reputation: 161
basicly whenever I call pyautogui to click it does it but then crashes the program. here is the program:
import pyautogui
import time
pyautogui.click(650, 200, 10)
print("started")
while 2 == 2:
x+1
waittime = random.randrange(35, 40, 1)
pyautogui.click(600, 680, waittime)
pyautogui.click(1270, 0, 5)
if (x % 4) == 0:
pyautogui.click(600, 550, 4)
when I run it from the command prompt I get this error
Traceback (most recent call last):
File "C:\Users\dogja\Desktop\crap\region2\scriptybob\test.py", line 3, in <module>
pyautogui.click(650, 200, 10)
File "C:\Users\dogja\AppData\Local\Programs\Python\Python35\lib\site- packages\pyautogui\__init__.py", line 362, in click
platformModule._click(x, y, 'left')
File "C:\Users\dogja\AppData\Local\Programs\Python\Python35\lib\site- packages\pyautogui\_pyautogui_win.py", line 437, in _click
_sendMouseEvent(MOUSEEVENTF_LEFTCLICK, x, y)
File "C:\Users\dogja\AppData\Local\Programs\Python\Python35\lib\site- packages\pyautogui\_pyautogui_win.py", line 480, in _sendMouseEvent
raise ctypes.WinError()
OSError: [WinError 127] The specified procedure could not be found.
Upvotes: 3
Views: 1797
Reputation: 161
The problem may have been being caused by the fact that the latest version of pyautogui was intended for python 3.4 when the latest is 3.5. I found that if you're running Windows, you can use win32api. To install this, run the command prompt in admin mode and cd to your python script directory and run this command:
pip install win32api
This will install win32api and its prerequisites.
Then, to make a simple click wrapper for win32api, use this function:
def click(x,y):
win32api.SetCursorPos((x,y))
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,x,y,0,0)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,x,y,0,0)
This essentially moves the cursor somewhere, presses the left mouse button down, and releases it very fast. I did not write the click snippet shown above, but I could not find where I found it first. Sorry to whoever wrote that snippet.
Upvotes: 1
Reputation: 1104
Maybe you are not using the click
function in right way. See the function definition:
click(x=None, y=None, clicks=1, interval=0.0, button='left', duration=0.0, tween=, pause=None, _pause=True)
Using pyautogui.click(650, 200, 10)
you are saying x=650, y=200 and clicks=10. I guess you want to say pyautogui.click(650, 200, interval=10)
.
Upvotes: 1