OOBE 是由 CloudExperienceHost 负责的,在它的 AppxManifest.xml 里面,写了:
<uap:Extension Category="windows.protocol">
<uap:Protocol Name="ms-cxh" ReturnResults="optional" />
</uap:Extension>
这表示这个应用注册了 ms-cxh
这个协议,因此在执行你说的命令时,Windows 会启动这个应用,并且将你输入的 Uri 传递给这个应用(在 C# UWP 里面,这是在 App.xaml.cs
中的 OnActivated
方法中处理的,不过 OOBE 用的是 WinJS,所以我不清楚 OOBE 是在哪里处理的)
题外话:OOBE 虽然是网页套壳,但它居然用的是 WinJS,走的还是 WinRT API 那套,挺意外的。
感兴趣的可以去看看 CloudExperienceHost 应用的文件夹:
C:\Windows\SystemApps\Microsoft.Windows.CloudExperienceHost_cw5n1h2txyewy