Питон:как запретить открытие приложения, если оно уже запущено

Я разрабатываю программное обеспечение 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 то, что вы спросили.