我已经使用tkinter
框架开发了python应用程序,该框架在Windows平台上运行良好,但是面临的挑战是,我可以多次打开此应用程序,如上图所示。
我希望应用程序仅打开一次。如果该应用已打开,并且用户单击了桌面上的图标以再次将其打开,则不应将其打开,因为它已经被打开。
我想实现此功能,因为它可以在Teamviewer
,pycharm
等应用中使用。
欢迎您提出建议以实现此目标。
编辑
这是如何尝试terminate
的方法,但是将其添加到代码中后,可执行文件不再运行。
import psutil
import tkinter as tk
root = tk.Tk()
root.geometry("400x400")
b = tk.Button(root, text="hello world button", command=None)
b.place(x=200, y=100)
PROCNAME = "myapp.exe"
for proc in psutil.process_iter():
# check whether the process name matches
if proc.name() == PROCNAME:
print("Running, exit(1).")
exit(1)
else:
print("not running, continue to startup.")
root.mainloop()
root.mainloop()
答案 0 :(得分:0)
问题:如何仅一次打开python软件
我的评论,
使用psutil查找正在运行的进程并终止。
应该写
使用psutil和退出查找正在运行的进程。
if __name__ == "__main__":
PROCNAME = "myapp.exe"
for proc in psutil.process_iter():
# check whether the process name matches
if proc.name() == PROCNAME:
print("Running, exit(1).")
exit(1)
print("not running, continue to startup.")
App().mainloop()