6

我正在为Windows 7设计一个用Python编码的 Windows 实用程序软件,使用Wxpython进行GUI工作。如果我的软件已经打开,我不想打开它。如果用户打开该软件,我想要这样的功能,将在 Windows 屏幕上显示一个消息框,显示“您的应用程序已经在运行”。

请帮忙。提前致谢...

4

1 回答 1

9

已经存在实现所需逻辑的 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()

这个典型的例子(为了运气)完全符合您的要求。

于 2012-08-20T10:41:56.940 回答