参考链接:
https://bbs.youkuaiyun.com/topics/392278929?page=1
https://blog.youkuaiyun.com/Teddycxr/article/details/80804383
思路一:用一个文件存放改程序pid号,启动时去该文件读取pid号,判断程序是否在执行
我的代码
def close_window(window):
"""关闭友好提示"""
if QMessageBox().information(None, "标题", "不能重复开启",
QMessageBox.Ok) == QMessageBox.Ok:
window.close()
if __name__ == '__main__':
cf = configparser.ConfigParser()
status_path = os.path.join(os.getcwd(), 'config', 'status.conf')
# 判断是否有开启权限,限制多开
tool_pid = conf_get(cf, status_path, 'tool_pid', 'pid')
permission = True
pids = psutil.pids()
# tool_pid 不为空
if bool(tool_pid) is True:
for pid in pids:
p = psutil.Process(pid)
if str(pid) == tool_pid and (p.name() == 'AutoTool.exe' or 'autotool.exe'):
permission = False
# 弹框提示
app = QApplication(sys.argv)
demo = Demo()
close_window(demo)
else:
continue
if permission:
# 修改pid
for pid in pids:
p = psutil.Process(pid)
if p.name() == 'AutoTool.exe' or 'autotool.exe':
conf_set(cf, status_path, 'tool_pid', 'pid', str(pid))
break
。。。
本文介绍了如何防止Python程序多开,通过检查文件中记录的进程ID(PID)来判断程序是否正在运行,以此避免同一程序的多个实例同时执行。参考了优快云上的相关讨论和文章。
4799





