繁体   English   中英

最小化的基于 Tkinter 的程序中的热键

[英]Hotkeys in a minimized Tkinter-based program

我正在为游戏制作 hack,我想在游戏全屏运行时使用 F7 热键启动/停止脚本。 我曾尝试使用root.bindpynput来做到这一点,但它们都没有奏效。

这是我的代码:

hack_running = False


def hack():
    if  hack_running:
        PressKeyPynput(0x02)
        time.sleep(0.08)
        ReleaseKeyPynput(0x02)
        PressKeyPynput(0x11)
        time.sleep(0.5)
        ReleaseKeyPynput(0x11)
        PressKeyPynput(0x1F)
        time.sleep(0.6)
        ReleaseKeyPynput(0x1F)
        PressKeyPynput(0x02)
        time.sleep(0.08)
        ReleaseKeyPynput(0x02)
        root.after(900000, hack)

def Start_stop():
    global hack_running
    if Startk['text'] == 'Start':
        hack_running = True
        hack()
        Startk.config(text='Stop')
    else:
        hack_running = False
        Startk.config(text='Start')


root = tk.Tk()

root.resizable(False, False)

canvas = tk.Canvas(root, height=HEIGHT, width=WIDTH)
canvas.pack()

frame = tk.Frame(root, bg='black')
frame.place(relwidth=1, relheight=1)

Startk = tk.Button(frame, text='Start', font=("Calibri", 10), command=Start_stop)
Startk.pack(side='top', pady='50')

root.mainloop()

尝试使用 pynput:

import pynput

def run():
    print('f7') # your code

def press(key):
    if key == pynput.keyboard.Key.f7:
        run()

pynput.keyboard.Listener(on_press=press).run()

有关键盘组合,请参阅此 github 问题 希望这会有所帮助!

Pynput 有一个简单的 class ,它提供名为 GlobalHotKeys 的热键GlobalHotKeys 参考这里。


不幸的是,如果只有 python,我想如果你想让它在游戏中工作,它就不能做更多了。

通常游戏中也有键盘监听线程。当你的python脚本和你的游戏一起工作时,它们会产生冲突。而你的python脚本不能正常工作。(并且游戏总是会采取一些措施来防止作弊。)

据我所知, AutoHotkey脚本可以在游戏中运行(至少它在过去对我有用)。 AutoHotkey 官方文档。在macOS参考这个

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM