写了一个wxPython的图像化小程序,在ide上运行的时候没问题。但是每次点击一次ide的运行按钮,都会再次运行一个程序。。。
怎么样做?判断一下如果已经运行了就把当前运行的显示出来就可以了,类似于单例这样,还望各位兄弟姐妹指导一下!!!
写了一个wxPython的图像化小程序,在ide上运行的时候没问题。但是每次点击一次ide的运行按钮,都会再次运行一个程序。。。
怎么样做?判断一下如果已经运行了就把当前运行的显示出来就可以了,类似于单例这样,还望各位兄弟姐妹指导一下!!!
参见官方示例:
#!/usr/bin/python
# coding: utf-8
def OnInit(self):
# Give a name to the wx.App
name = "MyApp-%s"%wx.GetUserId()
self._checker = wx.SingleInstanceChecker(name)
if self._checker.IsAnotherRunning():
raise Exception("Another program instance is already running, aborting.")
return False # 如果打包之后报错,尝试 return True
# ... more initializations here ...
return True
def OnExit(self):
del self._checker
return 0
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
1 回答3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
1 回答3.8k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
是windows还是Linux平台,linux平台一般是写一个文件比如myps.pid,然后把自己的pid写进去,每次启动的时候读这个固定的文件,然后监测下有无对应的pid进程在,有的话,主动退出。你可以把这个pid写到/tmp目录下
windows可以用核心对象来判断,这个有代码支持的,自己简单写了下windows的测试代码,linux可以自行加上