我正在设计一个用于 Windows 7 的Windows实用程序软件,用 Python 编码, Wxpython 用于 GUI 。如果它已经打开,我不想打开我的软件。 我希望这样的功能,如果用户打开该软件,将在Windows屏幕上显示一个消息框,显示“您的应用程序已在运行”。
Plz帮助。 提前谢谢......
答案 0 :(得分: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()
这个典型的例子(为了运气)可以很好地解释你所问的问题。