我正在为Windows 7设计一个用Python编码的 Windows 实用程序软件,使用Wxpython进行GUI工作。如果我的软件已经打开,我不想打开它。如果用户打开该软件,我想要这样的功能,将在 Windows 屏幕上显示一个消息框,显示“您的应用程序已经在运行”。
请帮忙。提前致谢...
已经存在实现所需逻辑的 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()
这个典型的例子(为了运气)完全符合您的要求。