хочу сделать клавиатурного спамера, не работает функция def
import time
import pyperclip
import keyboard
import tkinter as tk
from tkinter import *
time.sleep(5)
def spam(text: str, amount: int):
pyperclip.copy(text)
for _ in range(amount):
time.sleep(0.1)
keyboard.press_and_release('ctrl + v')
pyautogui.press("enter")
window = Tk()
window.title("spambot")
window.geometry("600x500")
window.resizable(False ,False)
window.config(bg="black")
s = tk.StringVar()
i = tk.IntVar()
l = Label(text= "введите текст для спама:", bg = "black", fg = "green",)
a = Entry(font='Times 15', textvariable = s)
l1 = Label(text= "введите количество сообщений:", bg = "black", fg = "green")
b = Entry(font='Times 15', textvariable = i)
btn = Button(window, text="НАЧАТЬ СПАМ",font='Times 15', fg = "red", command = spam(a.get(), int(b.get())))
l.pack(pady=(130,0))
a.pack()
l1.pack(pady=(10,0))
b.pack()
btn.pack(pady=20)
window.mainloop()
Ответы (1 шт):
Автор решения: gil9red
→ Ссылка
Вот тут немного неправильно - вы не указываете какую функцию с какими значениями нужно выполнить в command, а вызываете эту функцию и ее результат попадает в command:
btn = Button(window, text="НАЧАТЬ СПАМ",font='Times 15', fg = "red", command = spam(a.get(), int(b.get())))
Нужно обернуть в лямбду:
btn = Button(
window,
text="НАЧАТЬ СПАМ",
font='Times 15', fg="red",
command=lambda: spam(a.get(), int(b.get()))
)