扫码关注官方订阅号
写了一个wxPython的图像化小程序,在ide上运行的时候没问题。但是每次点击一次ide的运行按钮,都会再次运行一个程序。。。怎么样做?判断一下如果已经运行了就把当前运行的显示出来就可以了,类似于单例这样,还望各位兄弟姐妹指导一下!!!
欢迎选择我的课程,让我们一起见证您的进步~~
是windows还是Linux平台,linux平台一般是写一个文件比如myps.pid,然后把自己的pid写进去,每次启动的时候读这个固定的文件,然后监测下有无对应的pid进程在,有的话,主动退出。你可以把这个pid写到/tmp目录下windows可以用核心对象来判断,这个有代码支持的,自己简单写了下windows的测试代码,linux可以自行加上
# -*- coding: utf-8 -*- import sys import time if sys.platform.startswith("win32"): from win32api import GetLastError from winerror import ERROR_ALREADY_EXISTS ORG = "MyCompany" APP_NAME = "MyAppName" class Singleton(object): def __init__(self): if sys.platform.startswith("win32"): from win32event import CreateMutex self.mutexName = '%s.%s' % (ORG, APP_NAME) self.myMutex = CreateMutex(None, False, self.mutexName) //创建核心对象 self.lastErr = GetLastError() //检查lasterr else: # 是linux平台,可以把文件固定写在/tmp下,每次读这个文件检查pid内容,看是否有同样的pid存在 pass def isAlive(self): if sys.platform.startswith("win32"): if self.lastErr == ERROR_ALREADY_EXISTS: //如果LastError表示已经存在,则返回,表示进程表里有同样的进程存在 return True else: # 检查 return False
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
是windows还是Linux平台,linux平台一般是写一个文件比如myps.pid,然后把自己的pid写进去,每次启动的时候读这个固定的文件,然后监测下有无对应的pid进程在,有的话,主动退出。你可以把这个pid写到/tmp目录下
windows可以用核心对象来判断,这个有代码支持的,自己简单写了下windows的测试代码,linux可以自行加上