3

Windows XP では、プログラムがユーザーの注意を引く必要がある場合、タスクバー ボタンがオレンジ色に点滅します。IM プログラムを使用している人は、おそらくこの動作に精通しています。しかし、フルスクリーン モードのゲームをプレイしているときは、それが表示されず、メッセージに応答がありません。

現在、私は独自のゲーム エンジンを作成しており、ユーザーに親切にしたいと考えています。他のプログラムがタスクバー ボタンを「オレンジ色の点滅モード」に設定したときにプログラムに通知するフックを作成できる Windows API 呼び出しはありますか? そうすれば、それが発生したときにユーザーに通知できます。

これが利用できない場合、私は驚くでしょう。90 年代半ばに、この方法を実行できる Mac OS Classic スクリーンセーバーを見ました。そこから着想を得ました。

編集:これはhow-can-i-programmatically-determine-if-an-application-is-flashing-in-the-taskbの複製としてフラグが立てられましたが、答えがこれの方が優れているため、再度開きました。可能性のある解決策がある場合は、より多くの人々が議論します。

4

5 に答える 5

3

そんなことはないと思います。API フックでそれを達成できるかもしれませんが、Vista でそれができるかどうかはわかりません。ただし、XPで動作します。

ただし、この方向には「次善の策」となる可能性のある他のアイデアがいくつかあります。

  • 他のプログラムからのサウンドが聞こえるように、サウンド デバイスを独占的に所有しないでください。これがどのように行われるかはわかりませんが、他のサウンドをブロックするゲームもあれば、ブロックしないゲームもあります。
  • ユーザーが ALT-TAB やその他のキーの組み合わせを使用してゲームから切り替えることができるようにします。
  • 別のウィンドウがアクティブになろうとした場合は、許可して適切に最小化します。

その他の一般的なヒントは次のとおりです。

  • 最小化/復元時間を短縮するようにしてください。ゲームのプログラミングについては何も知りませんが、一部のゲームではこれに時間がかかります。
  • 最小化/復元時に画像を適切に復元します。一部のゲームでは、これに問題があります。
  • 最小化時に自動一時停止。ネットワーク ゲームで一時停止できない場合は、他のプレイヤーにメッセージを送って知らせてください。
  • 多少関係ありませんが、ゲームがどこかに時計を表示するのが好きです (ゲーム時間ではなく、実際の時計)。このようにして、プログラムを最小化せずに、すでに就寝する必要があるかどうかを簡単に判断できます。:)
于 2008-12-16T00:34:39.883 に答える
0

この質問は SO で以前に尋ねられたようです:アプリケーションがタスクバーで点滅しているかどうかをプログラムで判断するにはどうすればよいですか?

短い答え: 可能ではないようです。

于 2008-12-16T00:30:04.510 に答える
0

もちろん可能です。Win32 の FAQ でもあります (何年もの間...) Adv を参照してください。API ng ニュース://comp.os.ms-windows.programmer.win32

于 2008-12-17T17:24:07.083 に答える
-2

それは完全に可能です。私はWindows 7でそれをやっているので、Vistaでもできると確信しています。

于 2009-10-01T05:47:34.150 に答える