检测其他进程是否运行 Metro 应用程序



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

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

事实证明,

有一个API函数:IsImmersiveProcess。注意事项包括:

  • 由于某种原因,Explorer.exe,TaskMgr.exe以及可能的其他Explorer被认为是沉浸式的
  • 您只能查询在同一桌面上运行的进程
  • 某些过程(例如Bing Maps的地图.exe)开始时是非沉浸式的,几秒钟后切换到沉浸式。

相关内容

最新更新