所以我定义了一个,但是当我尝试键入一个使用keybaord.type时,它只是说它没有定义,我试图创建一个没有工作的全局对象,我尝试移动代码的位置,而没有工作的ive尝试了许多其他他们没有工作的东西要么
from tkinter import *
import webbrowser
from pynput.keyboard import Key, Controller
import time
menu = Tk()
menu.geometry('200x300')
def webop(): # new window definition
global a
def hh():
a = "" + txt.get()
while True:
keyboard = Controller()
time.sleep(1)
keyboard.type(a)
keyboard.press(Key.enter)
keyboard.release(Key.enter)
sp = Toplevel(menu)
sp.title("Spammer")
txt = Entry(sp, width=10)
txt.grid(row=1,column=1)
btn = Button(sp, text='spam', command=hh)
btn.grid(row=1,column=2)
def enc():
window = Toplevel(menu)
window.title("nou")
button1 =Button(menu, text ="Spammer", command =webop) #command linked
button2 = Button(menu, text="Fake bot", command = enc)
button1.grid(row=1,column=2)
button2.grid(row=2,column=2)
menu.mainloop()
global a
在下面def webop()
,webop
可以访问a
封闭范围(您正在其中进行导入的范围)中的变量。由于您尚未a
在该范围内进行定义,因此会出现错误。
无论哪种方式,通常都应避免使用此类全局变量,而应使用参数将数据传递给函数。为了将参数传递到Button中command
,可以使用闭包。
您应将代码访问部分移至a
设置该值的部分
目前尚不清楚您要在这里实现什么,因为在您运行webop
程序时,程序将到达while True
并不断循环到那里,而永远不会到达while循环下面的代码
例如
def hh(a):
a = "" + txt.get()
while True:
keyboard = Controller()
time.sleep(1)
keyboard.type(a)
keyboard.press(Key.enter)
keyboard.release(Key.enter)
btn = Button(sp, text='spam', command=hh)
另一种方法是使用functools部分实现相同的目的。参见https://www.delftstack.com/howto/python-tkinter/how-to-pass-arguments-to-tkinter-button-command/
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句