利用Python的tkinter和pyautogui构建自动进入腾讯会议的程序。创建tkinter窗口成功,打开腾讯会议成功,第一个按钮进入会议成功。然后复制第一个按钮的代码构建了另外三个按钮并进行必要调整,然后就出现了问题,在运行时前两个功能都正常但是后面三个就点了没有反应。
import tkinter as tk
from tkinter import messagebox
import math
import pyautogui
import os
import time as t
pyautogui.FAILSAFE =False
pyautogui.PAUSE = 0.1
# 会议号输入
# a=int(input())
a1 = list(('1')) # pyautogui最好的长按键输入法或许是列表
a2 = list(('2'))
a3 = list(('3'))
a4 = list(('4'))
# 点击腾讯会议
def open(e):
messagebox.showinfo('提示', '正在为您打开腾讯会议')
t.sleep(1)
# os.open("C:\Program Files (x86)\Tencent\WeMeet\wemeetapp.exe")
os.startfile("C:\Program Files (x86)\Tencent\WeMeet\wemeetapp.exe")# 腾讯会议快捷方式地址
n=0
while True:
n+=1
t.sleep(1)
print(n)
if n==7: # 根据电脑打开腾讯会议的时间来定
break
pyautogui.click(753,215,button='left')
# 构建窗口
root=tk.Tk()
root.title('腾讯会议自动入会系统')
root.geometry('600x800+1300+100')
# root.mainloop()
messagebox.showinfo('警告!','请使桌面仅有本窗口以免出现错误')
# 打开腾讯会议按钮
bt = tk.Button(root)
bt['text'] = "打开腾讯会议"
bt.pack()
bt.bind('<Button->', open)
# 输入会议号1
def tipe1(z1):
cup = a1
t.sleep(0.5)
pyautogui.click(740, 215, button='left') # 加入会议
pyautogui.click(800, 235, button='left') # 点击加入会议页面
pyautogui.click(800, 235, button='left') # 点击输入框
pyautogui.typewrite(cup, 0.1) # 输入
pyautogui.click(888, 955, button='left')
messagebox.showinfo('提示','all done enjoy!')
# 输入会议号2
def tipe2(z2):
print(a2)
cup = a2
t.sleep(0.5)
pyautogui.click(740, 215, button='left') # 加入会议
pyautogui.click(800, 235, button='left') # 点击加入会议页面
pyautogui.click(800, 235, button='left') # 点击输入框
pyautogui.typewrite(cup, 0.1) # 输入
pyautogui.click(888, 955, button='left')
messagebox.showinfo('提示','all done enjoy!')
# 输入会议号3
def tipe3(z3):
cup = a3
t.sleep(0.5)
pyautogui.click(740, 215, button='left') # 加入会议
pyautogui.click(800, 235, button='left') # 点击加入会议页面
pyautogui.click(800, 235, button='left') # 点击输入框
pyautogui.typewrite(cup, 0.1) # 输入
pyautogui.click(888, 955, button='left')
messagebox.showinfo('提示','all done enjoy!')
# 输入会议号4
def tipe4(z4):
cup = a4
t.sleep(0.5)
pyautogui.click(740, 215, button='left') # 加入会议
pyautogui.click(800, 235, button='left') # 点击加入会议页面
pyautogui.click(800, 235, button='left') # 点击输入框
pyautogui.typewrite(cup, 0.1) # 输入
t.sleep(0.5)
pyautogui.click(888, 955, button='left')
messagebox.showinfo('提示','all done enjoy!')
# 判定函数
#def t1(cup):
#cup = a
#print(cup)
# 会议按钮1
bt1 = tk.Button(root)
bt1['text'] = '四课'
bt1.pack()
# bt1.bind('<Button-1>', t1)
bt1.bind('<Button-1>', tipe1)
# 会议按钮2
bt2 = tk.Button(root)
bt2['text'] = 'wulike'
bt2.pack()
bt2.bind('<Button-2>', tipe2)
# 会议按钮3
bt3 = tk.Button(root)
bt3['text'] = '物理答疑'
bt3.pack()
# bt3.bind('<Button-3>', t1)
bt3.bind('<Button-3>', tipe3)
# 会议按钮4
bt4 = tk.Button(root)
bt4['text'] = '政治'
bt4.pack()
# bt4.bind('<Button-4>', t1)
bt4.bind('<Button-4>', tipe4)
root.mainloop()
运行后bt、bt1按钮运行正常,bt2-4显示但无反应。无报错。
首先尝试了吧后面的def ()的z也加上序号进行区分z-z1没有差别。因为bt1正常尝试把bt2的绑定改为tipe1,bt2成功执行了tipe1,所以怀疑是绑定未成功问题,检查bind使用好像没什么问题。然后改回tipe2并在def tipe2(z2):后面加一步priny(a2)做标记,在运行a2未输出,表示def tipe2(z2)未运行。查找bind失败可能原因未果。前来提问
希望bt2-4可以实现bt1的功能。
######改进方向
程序过于冗长,很多重复或许可以简化。曾尝试通过按钮绑定把对应列表赋值给中间变量cup未果。
######致谢
感谢您的浏览与解答,谢谢!
还不明白bind为什么不行,但是我找到了另外一种方式,把按钮的命令替换为这个就可以运行
bt2=tkinter.Button(tixt="Button name",command=tipe2)
bt2.pack()