2

有没有办法从.net 中的桌面应用程序启动“Metro”应用程序?

4

2 回答 2

5

所有现代 UI 应用程序都有一个与之关联的 URL 协议,可用于启动应用程序。
您可以找到特定应用程序的协议,如下所示:

  1. 按 Windows+R
  2. 类型regedit
  3. 导航HKEY_CLASSES_ROOT\Extensions\ContractId\Windows.Protocol\PackageId
  4. 查找您的应用程序的子项(例如,AMZNMobileLLC.KindleforWindows8_1.1.0.0_neutral__stfe6vwa9jnbp
  5. 在该子项中,转到ActivatableClassId_some long name_\CustomProperties
  6. Name值将告诉您协议名称。

然后,您可以传递 name://Process.Start().

(我在 SuperUser 上回答了这个问题)

于 2013-01-03T16:52:00.340 回答
1

我找到了另一种方法,从 win32 应用程序启动 win8 应用程序。

  1. 在您的 WinRt 项目中转到Package.appxmanifest -> declarations
  2. 添加File Type Associations并在Name字段中输入:myAppLaunch,在File Type输入中.myAppLaunch(带点)
  3. 创建一个文件(例如在桌面上)并设置.myAppLaunch为扩展名。
  4. 现在,在您的 Win32 应用程序中,执行该文件。
于 2013-05-24T11:59:27.413 回答