【发布时间】:2022-01-03 09:57:13
【问题描述】:
Python 3.10(操作系统 Windows 10,64 位)
嗨,
我编译了我的 Python tkinter 代码。什么时候 我运行 *.exe 两次有两个 tkinter main 窗户(和我一样 运行 windows notepad.exe 两次)。
但我想防止 tkinter .exe 可以 开始了两次。我可以做点什么让 tkinter 无论如何只能启动一次 我是否点击 tkinter.exe windows桌面十几次。
【问题讨论】:
-
您的代码在
main()函数中吗?你关心跨平台兼容性吗? -
我的意思是至少有一个文件,当程序启动时它会检查该文件,如果没有,它会启动并向文件写入一些东西,如果有的话(文本如果什么都没有,那将被写入),然后它不会启动,它会立即退出,当你关闭窗口(协议'WM_DELETE_WINDOW')时,它会清除该文件
-
@Thingamabobs 它只需要在 Windows 中工作(而不是在其他平台上)
-
@SamuelKazeem 谢谢,您的答案适用于 windows10: import win32event import win32api import sys from winerror import ERROR_ALREADY_EXISTS mutex = win32event.CreateMutex(None, False, 'name') last_error = win32api.GetLastError() if last_error == ERROR_ALREADY_EXISTS: sys.exit(0)
标签: python tkinter instance multiple-instances