2016-10-15 4 views
0

Windowsは、フルスクリーンモード(ゲーム、メディアプレーヤーなど)で実行中のアプリケーションがフルスクリーンモードを終了したとき、ウィンドウモードに戻るか、プロセスを終了するときを検出するためのメカニズムをいくつか備えていますか?Windowsでフルスクリーンアプリの終了を検出する

答えて

1

OSに関しては、「フルスクリーンモード」や「ウィンドウモード」はありません。ウィンドウには単に寸法がありますが、が画面の寸法と同じになることがあります。ウィンドウを所有するアプリケーションは、OSではなく、その動作を制御するので、ウィンドウが「フルスクリーン」モードまたは「ウィンドウモード」で表示されているときだけアプリケーションが認識します。言い換えれば、アプリケーションは、モードを変更するときに、CDS_FULLSCREENまたはフラグでオプションでChangeDisplaySettings/Ex()を呼び出すことができます。これにより、すべてのトップレベルウィンドウにWM_DISPLAYCHANGE通知が送信されますが、フルスクリーンウィンドウが表示されているかどうかはわかりません。

プロセスの終了を検出するために、WMIにはイベントがあります。 Receiving Event Notifications Through WMIを参照してください。

+0

私はいつもフルスクリーンアプリケーションがフルスクリーンボーダーレスアプリケーションとは異なると思っていました。この背後にある理由は、最初のウィンドウの作成時にフリッカーが存在し、後者のウィンドウが不足していたためです。フォアグラウンド実行中にフルスクリーンアプリケーションがWindows上のグラフィックスの所有権を取得しないのですか? – rlam12

+0

@ rlam12フルスクリーンのアプリはフルスクリーンのウィンドウで、何も特別なものではありません。私はあなたが参照しているちらつきを知らないが、 "フルスクリーン"ウィンドウは "グラフィックの所有権"を取っておらず、他のウィンドウのように通常描かれている。 –

+0

@ rlam12:DWMが導入されて以来、GPUはアプリケーション、フルスクリーンで使用されなくなりました(「DWMでのWindowsディスプレイドライバモデルの役割」(https://blogs.msdn。 microsoft.com/greg_schechter/2006/04/02/the-role-of-the-windows-display-driver-model-in-the-dwm/))。 – IInspectable

関連する問題