微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

按键时监视鼠标坐标

如何解决按键时监视鼠标坐标

我正在尝试使用一些快速命令 like this 来模拟 Dota 2 或战地中的聊天轮盘。

它应该如何: 按下 G 键时 - 带有某些部分的滚轮出现在屏幕中央,鼠标居中,如果我将鼠标移动到 side_1 然后松开 G 键 -> func_1 执行。 如果它在 side_2 -> func_2。 如果我在中间松开 G 键 -> 滚轮消失,什么也没有发生。

所以为了监控鼠标的 X Y 坐标,我使用以下代码

from pynput import mouse
    
def on_move(x,y):
    print(x,y)
    
    
# Collect events until released
with mouse.Listener(on_move=on_move) as listener:
    listener.join()

当我移动鼠标时它是垃圾邮件坐标。 但我被困在我需要的部分:

  1. 从另一个 .py 文件启动侦听器,并为程序的视觉部分获取这些坐标(例如用命令描述突出显示轮子的一侧),

  2. 从另一个 .py 文件关闭侦听器,并在释放 G 键时获取鼠标的最后一个坐标,以与为函数指定的 tge 坐标范围进行比较。

解决方法

你想要这样的东西:

from pynput import mouse,keyboard
import time


def on_press(key):
    print("pressed {}".format(key))

def on_release(key):
    print("released {}".format(key))

def on_move(x,y):
    print((x,y))


mouse_listener = mouse.Listener(
    on_move=on_move)
mouse_listener.start()

key_listener = keyboard.Listener(
    on_press=on_press,on_release=on_release)
key_listener.start()

# prevent the script from exiting immediately
time.sleep(10)
,
import time
import keyboard

from pynput.mouse import Controller

def get_xy():
    mouse = Controller()
    mouse_coord = str(mouse.position)
    mouse_coord = mouse_coord.replace("(","")
    mouse_coord = mouse_coord.replace(")","")
    mouse_coord = mouse_coord.replace(",","")
    mouse_coord = mouse_coord.split(" ")
    mouse_x = int(mouse_coord[0])
    mouse_y = int(mouse_coord[1])
    print(mouse_x,mouse_y)

while True:
    if keyboard.is_pressed('b'):
        get_xy()
        time.sleep(0.01)

输出示例:654 326

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。