6

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