2017-08-28 98 views
0

我正在練習wxwidgets最小樣本,我想實現這種行爲,我不知道它叫什麼。行爲是這樣的; (因爲它使用wxwidgets也使用了大膽性),當你使用直接訪問打開程序時,它會正常運行,但是如果再次單擊直接訪問,則會將它發送到當前已打開的實例,例如,如果您有Windows 10 4桌面,然後在桌面4上打開該程序,然後轉到桌面1並單擊直接訪問,它會將您發送到在桌面4上運行的程序。它是什麼以及如何實現這種行爲?

如何在wxwidgets中實現此操作? 比你提前。

+0

@DavidWilson,雖然對我的回答的評論通常是正確的,但我將鏈接發佈到wxWidgets在線手冊的官方文檔。這當然應該標記爲「LMGTFY」,但我沒有打擾,因爲OP說他正在學習圖書館。請撤消刪除。 – Igor

+0

@MartijnPieters,請參閱上文。 – Igor

回答

2

您要找的內容通常是(至少在Windows下)稱爲「單實例應用程序」,要實現這一點,您需要在應用程序的不同實例(即副本)之間有某種IPC。

一般來說,在啓動時,單個實例應用程序會嘗試打開一個IPC通道給自己的另一個版本,如果成功,則將其自己的命令行參數(如果有)發送到現有實例並退出當前實例。當然,如果失敗了,那麼假設沒有其他實例,應用程序將繼續正常運行。

wxWidgets的,你可以使用wxSingleInstanceChecker class只是執行檢查,但是這通常是不夠的,所以你也將使用wxServerwxClient對象實際傳輸實例之間的信息。您可以在手冊中的IPC overview中閱讀更多關於它們的內容。

相關問題