2011-12-17 20 views
0

ブラウザが表示されているときにAlwaysOnTop = Trueのフォームを作成する必要があります。これは "オーバーレイ"上に何らかの並べ替えを作成します。ロジックは次のようになります。2番目のアクティブウィンドウを取得する

  • プログラムは、どのウィンドウがアクティブであるかをチェックします。
  • アクティブなウィンドウが特定のプロセスである場合、私のフォームはTopMostユーティリティを初期化し、アクティブウィンドウ自体になります。
  • 特定のプロセスがアクティブなウィンドウになっていない場合、私のフォームは消えます。

    • 私のプログラムをチェックしそうだとすれば、ブラウザは、アクティブウィンドウの場合:フォームが最上位を取得し、プログラムがアクティブなウィンドウが何であるかをチェックを停止し、私はそれをやったどのよう

    。 (私の一番上のフォームは現在アクティブなウィンドウなので)。

  • これで、フォームの下のウィンドウが2番目のアクティブなウィンドウであることを確認する必要がありました。
  • もうブラウザでない場合は、フォームを非表示にする必要があり、プログラムはアクティブなウィンドウが何であるかを確認します。

私はすでに、私は第二アクティブウィンドウが何であるかをチェックする機能を得ることにこだわっている

、最初のアクティブなウィンドウが何であるかをチェックする機能を完了しました。

+1

Jonの答え –

答えて

1

"アクティブな第2のウィンドウ" - アクティブなものかそうでないものなのかはわかりません。

ブラウザを検出する最初の手順の後で、アクティブなウィンドウチェッカーを実行しないでください。

アクティブなウィンドウがフォームから消えたときを検出し、オーバーレイを非表示にすることができます。

+0

の横にあるクリックする必要がある中空のティックボックスがあります。これを試しましたが、私のフォームはこのような理由から一番上にとどまります。私が作っているのは、すべてのプログラムのための完全に動くツールバーです。そのプログラムがアクティブなときは、オーバーレイが必要なプログラムをクリックしても、ツールバーが表示されている必要があります。ブラウザをクリックすると、私のフォームはもはやアクティブなものではなく、最上位でない場合はバックグラウンドに消えてしまいます。 – c0ffee

+0

ああ、あなたはアクティブウィンドウを検出していて、一番上ではないと確信していますか?あなた自身が言ったように、彼らは微妙に異なるものです。 –

+0

あなたは正しいです、一番上は一番上のウィンドウであり、アクティブなウィンドウではありません!ありがとう、私は今あなたの助けに行くことができます。 – c0ffee

関連する問題