GUIが動作するようにWxpythonを使用してPythonでコーディングされたWindows 7用の Windows ユーティリティ ソフトウェアを設計しています。既に開いているソフトウェアを開きたくありません。ユーザーがそのソフトウェアを開くと、「アプリケーションは既に実行されています」というメッセージボックスが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()
この標準的な例 (運の問題) は、あなたが求めたものを正確に作成します。