首页 > 解决方案 > pynput 鼠标可以知道指针的形状是否是“手”吗?

问题描述

我创建了一个脚本,鼠标在屏幕上的随机位置单击。

唯一的问题是,如果该位置已经有东西,则不允许单击该位置。

我们必须点击一个没有人的位置。

这可以很容易地通过光标类型来区分。

如果光标是箭头,那么它是一个自由位置。如果光标是一只手,那么那里已经有人了。

设置鼠标位置后,有没有办法知道光标是箭头还是手?

代码在这里无关紧要,因为我要求更多的文档知识,但如果你必须看到:

from pynput.mouse import Button, Controller as mc

mouse = mc()

mouse.position = (xPos,yPos)

mouse.press(Button.left)

mouse.release(Button.left)

在此处输入图像描述

标签: pythonmousepynput

解决方案


在windows中,你可以用win32它来做,一个最小的例子。经测试, is 时为正常光标,info[1]is时为0手形光标:info[1]6

import win32gui
import time

while True:
    time.sleep(1)
    e = win32gui.GetIconInfo(win32gui.GetCursorInfo()[1])) # GetCursorInfo()[1] to get "HCURSOR",GetIconInfo to get the info about the cursor.
    # print(e)
    if e[1] == 0:
        print("Now it is normal")
    if e[1] == 6:
        print("It is hand")

MSDN中的官方文档: GetIconInfoGetCursorInfo


推荐阅读