如何通过单击Ubuntu上的按钮重新启动TeamViewer?



我正在开发一个GUI,我需要GUI能够在崩溃时重新启动Teamviewer。

我尝试使用团队查看器"备忘单"上的内核命令执行此操作

import tkinter as tk
import os
import time
root = tk.Tk()
root.title(string="TeamViewerRebootButton")
root.geometry("200x200")
def closePop_upCallback():
None
def teamviewerReboot():
rebooting = tk.Toplevel(master=root)
label = tk.Label(master=rebooting, text="Rebooting...", font=("", 15))
label.pack()
try:
os.system("sudo teamviewer daemon stop")
os.system("sudo teamviewer daemon start")
label.configure(text"Rebooting Complete")
sleep(1)
rebooting.destroy()


rebootTeamViewer = tk.Button(master=root, text="Restart TeamViewer", command=None)
rebootTeamViewer.pack()

root.mainloop()

虽然这声称有效,但据我所知,它实际上并没有重新启动 TeamViewer。

首先:你的按钮command=None,所以它永远不会运行任何功能,所以它无法重新启动它。

第二:你不能在没有exceptfinally的情况下使用try,所以如果你的按钮运行它,你可能会得到错误。

第三:你需要time.sleep而不是'sleep((


顺便说一句:我会使用pkexec而不是sudo来显示密码窗口 - 它比在没有密码的情况下运行sudo更安全。

大多数恶魔都可以选择restart重新启动它。当它不运行时,它也可以启动恶魔。我没有teamviewer来检查它是否也有此选项。


import tkinter as tk
import os
import time
# --- functions ---
def teamviewer_reboot():
rebooting = tk.Toplevel(root)
label = tk.Label(rebooting, text="Rebooting...")
label.pack()
try:
os.system("pkexec teamviewer daemon stop")
except Exception as ex:
print('ERROR:', ex)
os.system("pkexec teamviewer daemon start")
#os.system("pkexec teamviewer daemon restart")
label.configure(text="Rebooting Complete")
root.update() # update window because mainloop can't do this when sleep stops it.
time.sleep(2)
rebooting.destroy()
# --- main ---
root = tk.Tk()
root.title(string="TeamViewerRebootButton")
root.geometry("200x200")
reboot_teamviewer = tk.Button(root, text="Restart TeamViewer", command=teamviewer_reboot)
reboot_teamviewer.pack()
root.mainloop()

最新更新