Питон:как запретить открытие приложения, если оно уже запущено
Я разрабатываю программное обеспечение Windows utility для Windows 7 кодировка в Python С wxPython, в на GUI строительство.Я не хочу открывать свое программное обеспечение, если оно уже открыто. Я хочу такую функцию, если пользователь открывает это программное обеспечение, на экране windows должно отображаться окно сообщения, показывающее ,что"ваше приложение уже запущено".
справка Plz. Спасибо заранее...
1 ответов
уже существует объект wxPython, который реализует требуемую логику, называемую wx.SingleInstanceChecker
. Вот и пример кода (бесстыдно заимствованного из wxPython wiki):
import wx
class SingleAppFrame(wx.Frame):
def __init__(self, parent, title):
wx.Frame.__init__(self, parent, title=title, size=(300, 300))
self.Centre()
class SingleApp(wx.App):
def OnInit(self):
self.name = "SingleApp-%s" % wx.GetUserId()
self.instance = wx.SingleInstanceChecker(self.name)
if self.instance.IsAnotherRunning():
wx.MessageBox("Another instance is running", "ERROR")
return False
frame = SingleAppFrame(None, "SingleApp")
frame.Show()
return True
app = SingleApp(redirect=False)
app.MainLoop()
этот канонический пример (для удачи) делает exatly то, что вы спросили.