我有兩個版本的自定義軟件。 Modern/Metro應用程序(AppM)和我的傳統桌面應用程序(AppD)。我已經使用瞭解清楚的清單爲AppM創建了自定義協議。我已經編輯了註冊表,爲AppD製作了一個自定義協議處理程序,並測試了我確實可以使用協議激活從運行對話框(WIN + R)啓動AppD,方法是提供協議並敲擊回車,「AppD://」這個案例。我希望能夠通過AppM從AppD和AppD啓動AppM。我爲每個添加了處理程序。在AppD中,我使用Process.Start(uri),並在AppM中使用Launcher.LaunchUriAsync(uri)。我可以讓AppM從AppD啓動,但我從未從AppM啓動AppD啓動。我GOOGLE了,無法找到任何參考。我假設這是不可能的,而且可能非常需要處理權限。由於這項任務對我來說是項目中的一部分,我需要證明這是不可能的或找到解決方案。Windows 8協議從現代應用程序激活桌面應用程序
我已經使用C#/ XAml以及HTML/JS測試了這一點,發現Launcher.LaunchUriAsync(uri).when()成功函數被調用,但成功標誌爲false是有趣的。沒有錯誤(或者至少err函數從未被擊中)。我想得到一個更好的錯誤信息,並且我正在試圖以這種方式進行挖掘。
所以幫助實際問題,或者幫助如何調試這將是不勝感激。
更新:爲了消除自己的代碼,我下載並安裝了launch by association example,只是改變了VAR uriToLaunch =「http://bing.com」到VAR uriToLaunch =「APPD:」和失敗每次。這個協議與註冊表相關聯,我使用的方法是通過在桌面上使用WIN + R運行它來驗證這一點,並且應用程序啓動得很好。
根據讀取的一些msdn鏈接,它看起來像可能但不確定。 我會建議幾件事 - 1)請參考msdn中這些鏈接下的評論,並嘗試一下。 [link1](http://msdn.microsoft.com/en-us/library/windows/apps/hh452690.aspx)[link2](http://msdn.microsoft.com/en-us/library/windows/ apps/hh701484.aspx) 2)下載此[關聯示例](http://go.microsoft.com/fwlink/?linkid=231484&clcid=0x804),然後嘗試啓動打開流程 – Sushil 2013-04-09 03:43:03
感謝關於關聯示例的提示。我已經更新了這篇文章,以便包括我的冒險經歷。這看起來像從現代應用程序啓動桌面應用程序可能會被阻止。 – 2013-04-11 18:46:15
Microsoft拒絕執行此操作的應用程序。 – 2013-05-18 21:45:37