Python - 获取原始鼠标输入

问题描述 投票:0回答:3

我想使用Python从鼠标读取原始数据(例如左信号,右信号)独立于鼠标指针。我不想读取光标的位置,我想读取原始数据,类似于游戏的方式。我怎样才能做到这一点?我找不到任何支持它的库。

我使用的是 Windows。

编辑:澄清一下,当我说“左信号和右信号”时,我指的是鼠标移动,而不是鼠标点击, 编辑2:我相信术语是我想要“鼠标三角洲”。人们在 autohotkey 中就是这样做的 - https://www.autohotkey.com/boards/viewtopic.php?t=10159 - 但我想用 Python 实现。

编辑3:我应该提到,这是在一个不断重置指针位置的游戏中,所以我不能使用指针位置的差异。这就是为什么我想要一个较低级别的 API。

python mouse mouselistener
3个回答
0
投票

获取鼠标位置并比较两个事件。如果x轴值增大,则鼠标向右移动,如果x轴值减小,则鼠标向左移动:

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()        

0
投票

有人找到答案了吗? 遇到同样的问题,这是我所知道/尝试过的: 我正在尝试制作一个ultrakill ai,为了获取数据集,我想跟踪用户的真实鼠标移动,基本上我需要知道鼠标是向上移动还是向下移动 我试过: 从当前位置减去先前位置(此处建议), 检查与中心的偏移(现在工作 bcs 鼠标传送回来太快), 具有不断向 0 移动的“位置偏差”,受到用户移动的干扰(由于传送而输入过于紧张)

我要疯了 我正在考虑反编译游戏并删除鼠标锁定算法,读取鼠标驱动程序,读取原始 USB 输入,我不知道该怎么办了

如果有人知道请帮忙:)


-1
投票

您可以随时比较位置,这很容易给您带来增量。对于任何较低级别的 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")
© www.soinside.com 2019 - 2024. All rights reserved.