1

私は現在、フラッシュ ゲームを補完するプログラムを持っています。それが持っている機能の 1 つは、「常にトップに留まる」ことであり、これはゲームがフルスクリーン モードになるまで非常にうまく機能します。フラッシュがフル スクリーン モードになると、Windows タスクバーが消えて、フラッシュ ウィンドウが画面全体に反映されます。私のプログラムは本来のように一番上にとどまりますが、フォーカスが全画面フラッシュ ウィンドウから私のプログラムに移動するたびに、Windows タスクバーが表示されます。

FindWindow("Shell_TrayWnd", "");通常、 then を呼び出してタスクバーを常に非表示にしShowWindow(_taskbarHandle, 0);ます。これは機能しますが、フラッシュ ウィンドウがフル スクリーン モードではなく、プログラムがフォーカスされているときにタスクバーを表示したいのです。ウィンドウのハンドルを取得しようと考えましたが、ブラウザが異なればクラス名も異なります。

Flash ウィンドウが全画面表示で実行されているかどうかを判断するための信頼できる方法を誰かが持っているか、考えられますか?

現在アクティブなウィンドウ ハンドルを取得するために数秒ごとにポーリングすることを考えましGetActiveWindowたが、フラッシュ ウィンドウかどうかを判断する方法はまだありません。

開いているすべてのウィンドウを反復処理して、画面の幅と高さがあるかどうかを確認する方法はありますか?

4

1 に答える 1

0

この関数を使用して、開いているウィンドウを反復処理できEnumWindowsます。または、WindowFromPoint0,0とX-1、Y-1(XとYは画面の幅と高さ)にウィンドウがあるかどうか、ある場合は同じウィンドウであるかどうかを判断するために使用できます。

もう1つ試すことができますが、これが機能するかどうかはわかりませんがWS_EX_TOOLWINDOW、カスタムウィンドウに拡張ウィンドウスタイルを使用することです。これにより、ウィンドウがタスクバーに表示されなくなり、タスクバーが最初から前面に表示されなくなる可能性があります。

于 2012-12-18T07:10:13.887 に答える