2

外部プロセス (その PID しか知らない) が Metro アプリケーションを実行しているかどうかをユーザー空間から検出することは可能ですか?

更新:残念ながら、私の問題を解決する方法は他にありません。プロセスが Metro 環境でウィンドウを描画できるかどうかを真剣に知る必要があります。一般的な Windows ストア アプリは AppContainers で実行する必要がありますが、これは信頼できる指標ではありません。デスクトップ アプリケーションは自発的に AppContainer に入ってサンドボックスとして使用できるからです。たとえば、詳細設定で拡張保護モードを有効にすると、デスクトップ Internet Explorer はこれを行います。また、デスクトップ アプリケーションが特定の基準を満たしていれば、Metro での表示が許可される場合があります ( http://msdn.microsoft.com/en-us/library/windows/apps/hh465413 の「新しいエクスペリエンス対応デスクトップ ブラウザーの開発」を参照してください。 aspx )。たとえば、Chrome はこれを行います。

4

1 に答える 1

2

これにはIsImmersiveProcessという API 関数があることがわかりました。注意事項は次のとおりです。

  • explorer.exe、taskmgr.exe、およびおそらく他のものは、何らかの理由で没入型と見なされます
  • 同じデスクトップで実行されているプロセスのみを照会できます
  • 一部のプロセス (例: bing maps の map.exe) は非没入型として開始され、数秒後に没入型に切り替わります
于 2013-02-19T13:51:26.263 に答える