UWP應用程序可以使用Extension Category="windows.protocol"
(MSDN)註冊自定義方案。我知道自定義協議處理程序通過註冊一個URI方案(MSDN),但這些總是啓動應用程序的新實例。我想要的是一個UWP應用程序的行爲:如果有一個當前正在運行的實例,它將被激活。是否有類似於UWP windows.protocol的桌面機制?
我還研究了URL Monikers和異步可插入協議(MSDN),但這些協議只在調用協議進程時才起作用,例如在使用Web視圖時。即使其他進程(如Web瀏覽器)調用協議,UWP應用也會被激活。
這是用於C++ Win32桌面應用程序; .NET不是一個選項。
此外,正如我在對Anders提議的評論中所說的,我不想在創建一個單獨的組件來激活正在運行的應用程序,而其他某個進程(如瀏覽器)調用我的協議時。 UWP應用程序沒有這樣的要求,我想爲我的應用程序相同。
這將有助於澄清你的問題,如果你刪除了UWP引用,而是簡潔地發佈你以後的要求。 – IInspectable
執行此操作的標準方法是讓應用程序在啓動期間檢查現有實例,以及是否有一個將請求傳遞給舊實例並終止。每個人都這樣做,不僅在協議處理程序方面。這樣做沒有問題。 – conio