Python - 获取原始鼠标输入
Python - get raw mouse input
我想使用Python从鼠标读取原始数据(例如左信号,右信号)独立于鼠标指针。我不想要读取光标的位置,我想读取原始数据,类似于游戏的方式。我怎样才能做到这一点?我找不到任何支持它的库。
我正在使用 Windows。
编辑:澄清一下,当我说“左信号和右信号”时,我指的是鼠标 移动 ,而不是鼠标点击,
编辑 2:我相信术语是我想要“鼠标增量”。这就是人们在 autohotkey 中的做法 - https://www.autohotkey.com/boards/viewtopic.php?t=10159 - 但我希望它在 Python.
中
编辑3:我应该提一下,这是在一个不断重置指针位置的游戏中,所以我不能使用指针位置的差异。这就是为什么我想要一个较低级别的 API.
获取鼠标位置并比较两个事件。如果x-axis值增加,鼠标右移,如果x-axis值减小,鼠标左移:
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()
你总是可以不断地比较那些很容易给你一个增量的位置。任何较低的级别 API 你都必须自己编写鼠标驱动程序,这是游戏开发人员为防止人们编写脚本所做的,这不是 python 的目的。
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")
我想使用Python从鼠标读取原始数据(例如左信号,右信号)独立于鼠标指针。我不想要读取光标的位置,我想读取原始数据,类似于游戏的方式。我怎样才能做到这一点?我找不到任何支持它的库。
我正在使用 Windows。
编辑:澄清一下,当我说“左信号和右信号”时,我指的是鼠标 移动 ,而不是鼠标点击, 编辑 2:我相信术语是我想要“鼠标增量”。这就是人们在 autohotkey 中的做法 - https://www.autohotkey.com/boards/viewtopic.php?t=10159 - 但我希望它在 Python.
中编辑3:我应该提一下,这是在一个不断重置指针位置的游戏中,所以我不能使用指针位置的差异。这就是为什么我想要一个较低级别的 API.
获取鼠标位置并比较两个事件。如果x-axis值增加,鼠标右移,如果x-axis值减小,鼠标左移:
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()
你总是可以不断地比较那些很容易给你一个增量的位置。任何较低的级别 API 你都必须自己编写鼠标驱动程序,这是游戏开发人员为防止人们编写脚本所做的,这不是 python 的目的。
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")