用Python控制鼠标
在Python中如何控制鼠标光标,即将其移动到某个位置并在Windows下单击?
在安装pywin32 (python32-214.win32-py2.6.exe)后,在WinXP,Python 2.6上进行testing:
import win32api, win32con 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) click(10,10)
您可以使用win32api
或ctypes
模块来使用win32 apis来控制鼠标或任何gui
这里有一个有趣的例子来控制使用win32api的鼠标:
import win32api import time import math for i in range(500): x = int(500+math.sin(math.pi*i/100)*500) y = int(500+math.cos(i)*100) win32api.SetCursorPos((x,y)) time.sleep(.01)
点击使用ctypes:
import ctypes # see http://msdn.microsoft.com/en-us/library/ms646260(VS.85).aspx for details ctypes.windll.user32.SetCursorPos(100, 20) ctypes.windll.user32.mouse_event(2, 0, 0, 0,0) # left down ctypes.windll.user32.mouse_event(4, 0, 0, 0,0) # left up
尝试使用PyAutoGUI模块。 这是多平台。
pip install pyautogui
所以:
import pyautogui pyautogui.click(100, 100)
它还具有其他function:
import pyautogui pyautogui.moveTo(100, 150) pyautogui.moveRel(0, 10) # move mouse 10 pixels down pyautogui.dragTo(100, 150) pyautogui.dragRel(0, 10) # drag mouse 10 pixels down
这比通过所有的win32con的东西要容易得多。
看看跨平台PyMouse: https : //github.com/pepijndevos/PyMouse/
另一个select是使用跨平台的AutoPy包 。 这个软件包有两个不同的移动鼠标的选项:
这段代码会立即将光标移动到位置(200,200):
import autopy autopy.mouse.move(200,200)
如果您希望光标在屏幕上可见地移动到指定位置,则可以使用smooth_move命令:
import autopy autopy.mouse.smooth_move(200,200)
http://danielbaggio.blogspot.com/2009/03/python-mouse-move-in-5-lines-of-code.html
from Xlib import X, display d = display.Display() s = d.screen() root = s.root root.warp_pointer(300,300) d.sync()
快速和肮脏的function,将点击左键clicks
时间在Windows 7使用ctypes
库左键单击。 无需下载。
import ctypes SetCursorPos = ctypes.windll.user32.SetCursorPos mouse_event = ctypes.windll.user32.mouse_event def left_click(x, y, clicks=1): SetCursorPos(x, y) for i in xrange(clicks): mouse_event(2, 0, 0, 0, 0) mouse_event(4, 0, 0, 0, 0) left_click(200, 200) #left clicks at 200, 200 on your screen. Was able to send 10k clicks instantly.