Может ли мышь pynput знать, является ли указатель «рукой»? - PullRequest
0 голосов
/ 25 апреля 2020

Я создал сценарий, в котором мышь щелкает мышью в произвольных местах на экране.

Единственная проблема заключается в том, что если в этой позиции уже что-то есть, то нажатие на это местоположение не допускается.

Мы должны щелкнуть в месте, где никого нет.

Это можно легко отличить по типу курсора.

Если курсор является стрелкой, то это свободная позиция. Если курсор - это рука, то там уже кто-то есть.

После установки положения мыши можно ли узнать, является ли курсор стрелкой или рукой?

Код здесь не имеет значения, поскольку я прошу больше знаний о документации, но если вы должны увидеть:

from pynput.mouse import Button, Controller as mc

mouse = mc()

mouse.position = (xPos,yPos)

mouse.press(Button.left)

mouse.release(Button.left)

enter image description here

1 Ответ

1 голос
/ 27 апреля 2020

В windows, вы можете использовать win32, чтобы сделать это, минимальный пример. При тестировании я обнаружил, что это обычный курсор, когда информация [1] равна 0, и это будет ручной курсор, когда информация [ 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: GetIconInfo , GetCursorInfo

...