2011-06-20 7 views
2

私は現在、バックグラウンドで実行中のJavaクロスプラットフォーム(WindowsおよびMac OS X)アプリケーションを開発しており、「コピー&ペースト」やプログラムの起動など、一部のユーザーまたはシステムのイベントにポップアップウィンドウを表示しています。フルスクリーンモードで実行されているJava以外のプログラムを検出するにはどうすればよいですか?

しかし、必ずしもJavaで開発されていない他のプログラムがフルスクリーンモードで実行されている場合、最初に検出したいと思います。その場合、私はウィンドウを表示しません。例えば 、ユーザが、だからここに...

をフルスクリーンでムービー(メディアプレーヤー...)、PowerPointプレゼンテーションを見ている私の質問です: 1にそんなことをする方法はありますJava言語? 2.可能でない場合は、別の言語で「フルスクリーンモード検出器」を実行しますが、Javaアプリケーションと通信してフルスクリーンウィンドウがあることを通知できる必要があります。 3.可能でない場合(1):それを行うための最良の言語をご存知ですか? C#またはC++ MFC(How to check if an other program is running in fullscreen mode, eg. a media player)で他のソリューションを見つけました。

どんなアイデアも非常に便利です。 ありがとうございました。

セバスチャン

答えて

1

最終的に、アクティブなウィンドウがフルスクリーンモードであるかどうかをチェックし、その結果を標準出力に書き出す、各OS用に1つの外部プログラムを実行しました。私のJavaアプリケーションはOSに応じて良いプログラムを呼び出し、その結果を読みます。

私が使用:Mac OS X用

  • のWindows
  • のためのC#
  • カーボン

は、最も難しい部分は、Mac OS Xのバージョンでした。

これらのプログラムに興味があれば、お気軽にお問い合わせください。

もう一度お手数をおかけします。

0

あなたはスクリーンショットに基づくアルゴリズムを実装することができ、java.awt.Robotで画面をキャプチャすることができますか?

+0

興味深い回答、ありがとうございます。実際には、私のアプリケーションはすでにウィンドウを表示する直前にスクリーンショットをキャプチャしています。だからあなたはアルゴリズムでスクリーンショットを分析し、ウィンドウがフルスクリーンモードであるかどうかを判断することが可能だと思いますか?私は少し懐疑的です。映画を見ながら、フルスクリーンモードになっているかどうかを言うのが難しい場合もあるので、私は少し懐疑的です。 –

+0

これは95%以上の精度で可能です。映画を見ていると、上下に黒い矩形があり、リンゴ/ウィンドウのロゴ、枠付きのウィンドウがないことを意味します。もちろん、実装するのは簡単ではありません。 – chro

+0

唯一の代替案は、プラットフォームごとに実装されたJNIです(Windows API、Objective C、X11など)。 – chro

0

最も簡単な解決策は、ユーザーにポップアップを有効または無効にするオプションを与えることです。そうすれば、彼らはポップアップを受信するタイミングを選択して選択することができます。

+0

このアドバイスをいただきありがとうございます。ユーザーは自分のプログラムで既にそれを行うことができます。しかし、将来的にはこのイベントで特定のポップアップを表示する必要があるため、フルスクリーンプログラムを検出する必要もあります。以前は言いませんでしたが、私のアプリケーションの目的は、ユーザーがシステム上の彼の活動について質問することです(記述的経験サンプリング方法)。 –

関連する問題