最小化的基于 Tkinter 的程序中的热键
Hotkeys in a minimized Tkinter-based program
我正在为游戏制作 hack,我想在游戏 运行 全屏时使用 F7 热键 start/stop 脚本。我试过使用 root.bind
和 pynput
来做到这一点,但是 none 成功了。
这是我的代码:
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()
有关键盘组合,请参阅 this github issue。
希望对您有所帮助!
Pynput 有一个简单的 class,它提供名为 GlobalHotKeys
的热键功能。Reference here.
不幸的是,如果只有python,我想如果你想让它在游戏中发挥作用,我认为它不能做得更多。
正常情况下,game.When你的python脚本中也有键盘监听线程与你的游戏一起工作,它们会导致conflict.And你的python脚本不能正常工作。(并且游戏总是会采取一些措施来防止作弊。)
据我所知,AutoHotkey
脚本可以在游戏中运行(至少它过去对我有用)。AutoHotkey Official document.On macOS
,refer this
我正在为游戏制作 hack,我想在游戏 运行 全屏时使用 F7 热键 start/stop 脚本。我试过使用 root.bind
和 pynput
来做到这一点,但是 none 成功了。
这是我的代码:
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()
有关键盘组合,请参阅 this github issue。 希望对您有所帮助!
Pynput 有一个简单的 class,它提供名为 GlobalHotKeys
的热键功能。Reference here.
不幸的是,如果只有python,我想如果你想让它在游戏中发挥作用,我认为它不能做得更多。
正常情况下,game.When你的python脚本中也有键盘监听线程与你的游戏一起工作,它们会导致conflict.And你的python脚本不能正常工作。(并且游戏总是会采取一些措施来防止作弊。)
据我所知,AutoHotkey
脚本可以在游戏中运行(至少它过去对我有用)。AutoHotkey Official document.On macOS
,refer this