如何在Python中控制鼠标光标,即移动到特定位置并单击,在Windows下?


当前回答

尝试Clicknium, https://www.clicknium.com/documents/references/python/mouse/ 它可以控制鼠标和键盘,并帮助您定位web浏览器和桌面应用程序中的UI元素。

这是一个沿着圆圈移动鼠标的示例

from time import sleep
import math
from clicknium import clicknium as cc
def circle():
    a,b = cc.mouse.position()
    w = 20  
    m = (2*math.pi)/w 
    r = 200      

    while 1:    
        for i in range(0, w+1):
            x = int(a+r*math.sin(m*i))  
            y = int(b+r*math.cos(m*i))
            cc.mouse.move(x,y)
            sleep(0.2)

if __name__ == "__main__":
    circle()

其他回答

你可以使用win32api或ctypes模块来使用win32api来控制鼠标或任何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

Pynput是我发现的最好的解决方案,无论是Windows还是Mac。超级容易编程,工作得非常好。

例如,

from pynput.mouse import Button, Controller

mouse = Controller()

# Read pointer position
print('The current pointer position is {0}'.format(
    mouse.position))

# Set pointer position
mouse.position = (10, 20)
print('Now we have moved it to {0}'.format(
    mouse.position))

# Move pointer relative to current position
mouse.move(5, -5)

# Press and release
mouse.press(Button.left)
mouse.release(Button.left)

# Double click; this is different from pressing and releasing
# twice on Mac OSX
mouse.click(Button.left, 2)

# Scroll two steps down
mouse.scroll(0, 2)

如果你需要玩游戏的话。正如本文https://www.learncodebygaming.com/blog/pyautogui-not-working-use-directinput中所解释的,像《我的世界》或《堡垒之夜》等游戏都有自己的鼠标/键盘事件注册方式。控制鼠标和键盘事件的方法是使用全新的PyDirectInput库。他们的github知识库是https://github.com/learncodebygaming/pydirectinput,有很多很棒的信息。 下面是一个快速的代码,执行鼠标循环,点击:

import pydirectinput  # pip install pydirectinput


pydirectinput.moveTo(0, 500)
pydirectinput.click()

尝试Clicknium, https://www.clicknium.com/documents/references/python/mouse/ 它可以控制鼠标和键盘,并帮助您定位web浏览器和桌面应用程序中的UI元素。

这是一个沿着圆圈移动鼠标的示例

from time import sleep
import math
from clicknium import clicknium as cc
def circle():
    a,b = cc.mouse.position()
    w = 20  
    m = (2*math.pi)/w 
    r = 200      

    while 1:    
        for i in range(0, w+1):
            x = int(a+r*math.sin(m*i))  
            y = int(b+r*math.cos(m*i))
            cc.mouse.move(x,y)
            sleep(0.2)

if __name__ == "__main__":
    circle()

非常容易 1-安装包:

pip install mouse

2-添加库到项目:

import mouse

3-举个例子:

mouse.right_click()

在这个url中描述所有你可以使用它的函数:

https://github.com/boppreh/mouse