【问题标题】:Can a Metro application be aware of other apps?Metro 应用程序可以感知其他应用程序吗?
【发布时间】:2012-03-06 09:01:58
【问题描述】:

有没有办法从 Metro 应用中列出所有正在运行的 Metro 应用?我正在考虑一个 Metro 任务管理器。

【问题讨论】:

    标签: windows process microsoft-metro windows-runtime


    【解决方案1】:

    Metro 应用程序对彼此的了解仅限于通过 Share 魅力提供的共享合同。执行任务管理器之类的操作需要使用仪表板方法之类的方法,从桌面端运行的服务中提取数据,这可能是不切实际的。

    【讨论】:

    • 你能从服务中开发如何做到这一点吗?
    【解决方案2】:

    我不这么认为。 Metro 应用程序在沙盒中运行,就像在 Windows Phone 中一样。

    【讨论】:

    • 如果你是一个优秀的程序员,你可以hook dll调用,metro launcher exe(s)等;收集 Metro 应用程序中的所有子目录,并使用这些信息 - 您可以查看整个系统哪个商店应用程序当前正在运行或不运行。我的意思是,如果你可以看到你的 Metro 应用程序在 Windows 8 任务管理器中运行,那么,应该有办法做到这一点。
    【解决方案3】:

    可靠的答案是否定的。 Metro 应用程序无法枚举同一系统上的其他 Metro 应用程序。同时,Metro 应用程序不能“意识到”(如您所说)桌面应用程序,桌面应用程序也不能(技术上)知道 Metro 应用程序。

    但有一种情况是不正确的。 Metro 应用程序的 LoopBack 功能在通过 Microsoft 商店交付时被禁用。但是,当它们被侧载或通过企业门户加载时,可能会启用 LoopBack - 这允许 Metro 应用程序与可能正在侦听的桌面应用程序有效地与同一盒子通信。

    【讨论】:

    • 我想到了 Metro 和 Desktop 可以通过公共网络服务交换数据的场景。你认为在本地桌面和 Metro 之间可以有开放的 TCP 类型的通道吗? IE。用于 JSON 数据等。
    【解决方案4】:

    您不能循环浏览其他 Metro 应用程序。 但是,您可以使用合同在 Metro 风格应用程序之间共享信息。 正如杰里尼克松在另一个答案中提到的那样,您可以为侧载应用程序执行此操作。 桌面应用程序不同,行为也不同。您可以访问正在运行的桌面(而非 Metro)应用

    【讨论】:

      猜你喜欢
      • 2014-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-26
      相关资源
      最近更新 更多