python 自动远程输入文本
import tkinter as tk
import threading
import time
import keyboard
class TextTyperApp:
def __init__(self, master):
self.master = master
master.title("敲字工具(ESC键中断输入)")
self.textbox = tk.Text(master)
self.textbox.pack()
self.speed_label = tk.Label(master, text="自定义每个字用多少秒:")
# self.speed_label = tk.Label(master, text="每输入多少个字停顿0.01秒:")
self.speed_label.pack()
self.speed_entry = tk.Entry(master)
self.speed_entry.insert(tk.END, "0.01")
# self.speed_entry.insert(tk.END, "10")
self.speed_entry.pack()
self.start_button = tk.Button(master, text="按下本按钮,5秒后自动键入上述内容\n(然后点击你想输入的区域,你有5秒选择输入区域的时间)\n《请确保输入区域能安全输入回车等键》", command=self.start_typing, bg="white", fg="black")
self.start_button.pack()
self.stop_typing_flag = False # 用于中断输入的标志
def start_typing(self):
# 获取文本框中的内容
text = self.textbox.get("1.0", "end-1c")
if text.strip() == "":
return
# 获取输入速度
speed = float(self.speed_entry.get())
# 禁用按钮
self.start_button.config(state="disabled")
# 倒计时
for i in range(5):
self.start_button.config(text=f"将在 {5 - i} 秒后开始模拟键盘输入", bg="red", fg="white")
time.sleep(1)
self.start_button.config(text="输入中 (按ESC紧急中断)", bg="red", fg="white")
# 启动模拟键盘输入线程
self.stop_typing_flag = False # 重置中断标志
threading.Thread(target=self.type_text_thread, args=(text, speed)).start()
def type_text_thread(self, text, speed):
# 监听 ESC 键
keyboard.add_hotkey('esc', self.stop_typing)
# # 模拟键盘输入
print(text)
print(len(text))
for char in text:
if self.stop_typing_flag:
break
keyboard.write(char)
time.sleep(speed)
# 模拟键盘输入
# counter = 0
# for char in text:
# counter += 1
# if self.stop_typing_flag:
# break
# keyboard.write(char)
# if counter % speed == 0:
# time.sleep(0.01)
# 解除 ESC 键的监听
keyboard.remove_hotkey('esc')
# 重新启用按钮
self.start_button.config(state="normal", text="按下本按钮,5秒后自动键入上述内容\n(然后点击你想输入的区域,你有5秒选择输入区域的时间)\n《请确保输入区域能安全输入回车等键》", bg="white", fg="black")
def stop_typing(self):
self.stop_typing_flag = True
def main():
root = tk.Tk()
app = TextTyperApp(root)
root.mainloop()
if __name__ == "__main__":
main()
import threading
import time
import keyboard
class TextTyperApp:
def __init__(self, master):
self.master = master
master.title("敲字工具(ESC键中断输入)")
self.textbox = tk.Text(master)
self.textbox.pack()
self.speed_label = tk.Label(master, text="自定义每个字用多少秒:")
# self.speed_label = tk.Label(master, text="每输入多少个字停顿0.01秒:")
self.speed_label.pack()
self.speed_entry = tk.Entry(master)
self.speed_entry.insert(tk.END, "0.01")
# self.speed_entry.insert(tk.END, "10")
self.speed_entry.pack()
self.start_button = tk.Button(master, text="按下本按钮,5秒后自动键入上述内容\n(然后点击你想输入的区域,你有5秒选择输入区域的时间)\n《请确保输入区域能安全输入回车等键》", command=self.start_typing, bg="white", fg="black")
self.start_button.pack()
self.stop_typing_flag = False # 用于中断输入的标志
def start_typing(self):
# 获取文本框中的内容
text = self.textbox.get("1.0", "end-1c")
if text.strip() == "":
return
# 获取输入速度
speed = float(self.speed_entry.get())
# 禁用按钮
self.start_button.config(state="disabled")
# 倒计时
for i in range(5):
self.start_button.config(text=f"将在 {5 - i} 秒后开始模拟键盘输入", bg="red", fg="white")
time.sleep(1)
self.start_button.config(text="输入中 (按ESC紧急中断)", bg="red", fg="white")
# 启动模拟键盘输入线程
self.stop_typing_flag = False # 重置中断标志
threading.Thread(target=self.type_text_thread, args=(text, speed)).start()
def type_text_thread(self, text, speed):
# 监听 ESC 键
keyboard.add_hotkey('esc', self.stop_typing)
# # 模拟键盘输入
print(text)
print(len(text))
for char in text:
if self.stop_typing_flag:
break
keyboard.write(char)
time.sleep(speed)
# 模拟键盘输入
# counter = 0
# for char in text:
# counter += 1
# if self.stop_typing_flag:
# break
# keyboard.write(char)
# if counter % speed == 0:
# time.sleep(0.01)
# 解除 ESC 键的监听
keyboard.remove_hotkey('esc')
# 重新启用按钮
self.start_button.config(state="normal", text="按下本按钮,5秒后自动键入上述内容\n(然后点击你想输入的区域,你有5秒选择输入区域的时间)\n《请确保输入区域能安全输入回车等键》", bg="white", fg="black")
def stop_typing(self):
self.stop_typing_flag = True
def main():
root = tk.Tk()
app = TextTyperApp(root)
root.mainloop()
if __name__ == "__main__":
main()
posted on 2025-11-11 16:19 renshaoping 阅读(7) 评论(0) 收藏 举报
浙公网安备 33010602011771号