我正在尝试编写一个基于 python 的键盘和鼠标光标宏

I'm trying to write a python based keyboard&mouse cursor macro

Whosebug 的人们!我刚刚开始我的编码之旅,这似乎是让我想要放弃一切的问题 xD 如果这很简单,我很抱歉,但我真的尝试了所有可能的方法

我正在尝试编写一个宏,它会使用 ctrl 键记住光标在屏幕上的位置,并 return 使用 alt 键将光标移动到该位置。

import pyautogui
from pynput import keyboard
from contextlib import redirect_stdout

def on_press(key):
    if key == keyboard.Key.ctrl_l:
        print(pyautogui.position()) 

    with open("cf.py", "a") as f:
        with redirect_stdout(f):
            print((pyautogui.position()))

一切正常,直到我尝试将 cf.py 的输出结果输出到主文件,以便我可以在 alt 宏中使用它们。

    from cf import Point

    if key == keyboard.Key.alt_l:
       print(pyautogui.moveTo(Point(x, y)))

    if key == keyboard.Key.esc:
        return False

with keyboard.Listener(on_press=on_press) as listener:
    listener.join()

这不是一个很好的做事方式。您应该读取文件中的位置,而不是导入文件。有多种方法可以做到这一点,但这可能是最简单的方法:

import pyautogui
from pynput import keyboard
import json

def on_press(key):
    if key == keyboard.Key.ctrl_l:
        print(pyautogui.position()) 

    with open("cf.json", "w") as f:
        json.dump(list(pyautogui.position()), f)


    if key == keyboard.Key.alt_l:
       with open("cf.json") as f:
           x, y = json.load(f)
       pyautogui.moveTo(x, y)

    if key == keyboard.Key.esc:
        return False

with keyboard.Listener(on_press=on_press) as listener:
    listener.join()