Python - obter entrada bruta do mouse
Eu quero usar Python para ler dados brutos do mouse (por exemplo, sinal esquerdo, sinal direito) independente do ponteiro do mouse. Não quero ler a posição do cursor, quero ler os dados brutos, da mesma forma que um jogo faria. Como eu posso fazer isso? Não consigo encontrar nenhuma biblioteca que o suporte.
Estou usando o Windows.
Edit: Para esclarecer, quando eu disse "sinal esquerdo e sinal direito", quis dizer movimento do mouse , não cliques do mouse, Editar 2: acredito que a terminologia é que eu quero o "delta do mouse". É assim que as pessoas faziam no autohotkey -https://www.autohotkey.com/boards/viewtopic.php?t=10159 - mas eu quero em Python.
Edit 3: Devo mencionar que este é um jogo que constantemente redefine a posição do ponteiro, então não posso usar a diferença na posição do ponteiro. É por isso que quero uma API de nível inferior.
Respostas
Obtenha a posição do mouse e compare dois eventos. Se o valor do eixo x aumentar, o mouse será movido para a direita; se o valor do eixo x diminuir, o mouse será movido para a esquerda:
from pynput.mouse import Listener
last_position = None
def on_move(x, y):
global last_position
if last_position:
if x > last_position:
print('mouse moved right')
elif x < last_position:
print('mouse moved left')
last_position = x
with Listener(on_move=on_move) as listener:
listener.join()
Você sempre pode comparar a posição constantemente, o que facilmente teria dado a você um delta. Em qualquer API de nível inferior, você terá que codificar um driver de mouse, que é o que os desenvolvedores de jogos fazem para evitar que as pessoas façam scripts, o que não é para o qual o python foi criado.
import pyautogui
import time
while True:
prev_x, prev_y = pyautogui.position()
time.sleep(0.3)
curr_x, curr_y = pyautogui.position()
if (curr_x - prev_x) > 0:
print("move right")
else:
print("move left")