【问题标题】:Detect if a different process runs a Metro application检测其他进程是否运行 Metro 应用程序
【发布时间】:2012-11-27 11:08:34
【问题描述】:

是否可以从用户空间检测到外部进程(我只知道它的 PID)是否运行 Metro 应用程序?

更新:不幸的是,没有其他方法可以解决我的问题。我非常需要知道是否允许进程在 Metro 环境中绘制窗口。常见的 Windows Store 应用程序需要在 AppContainers 中运行,但这不是一个可靠的指标,因为任何桌面应用程序都可以自愿进入 AppContainer 以将其用作沙箱。例如,如果您在高级设置中启用增强保护模式,桌面 Internet Explorer 会执行此操作。此外,如果桌面应用程序满足某些条件,它可能会被允许在 Metro 中显示(请参阅http://msdn.microsoft.com/en-us/library/windows/apps/hh465413.aspx 上的“开发支持新体验的桌面浏览器”)。例如 Chrome 就是这样做的。

【问题讨论】:

  • 也许解释你的用例会帮助其他人回答这个问题。
  • 我已经用我掌握的所有信息更新了这个问题。

标签: windows-8 microsoft-metro


【解决方案1】:

原来有一个 API 函数可以做到这一点:IsImmersiveProcess。警告包括:

  • explorer.exe、taskmgr.exe 和可能的其他文件由于某种原因被认为是沉浸式的
  • 你只能查询在同一desktop上运行的进程
  • 某些进程(例如 bing 地图的 map.exe)以非沉浸式开始,几秒钟后切换到沉浸式

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-31
    • 1970-01-01
    • 2014-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多