2

Screen オブジェクトの Screen.AllScreen 配列からアクティブなウィンドウを含むスクリーンを見つけようとしているので、そのスクリーンを使用して新しいウィンドウを表示できます。

私が考えることができる最善の方法は、ピンボークしてフォアグラウンドのアクティブウィンドウを取得し、そのオブジェクトから何らかの画面位置を見つけ、そのポイントを画面オブジェクト領域の配列と比較して、そこに含まれているかどうかを確認することです。左上隅で十分です。アクティブなウィンドウが複数のモニターに同時に表示される可能性は無視します。

pinvoke の getforegroundwindow と含まれるポイント反復検索を回避する簡単な方法はありますか?

4

1 に答える 1

2

次のように、静的メソッドScreen.FromHandle()を使用して、アクティブなフォームの最大部分を含む画面を取得します ( by Handle):

Screen scr = Screen.FromHandle(GetForegroundWindow());

、およびScreenから取得する静的メソッドがさらに 3 つあります。ControlPointRectangle

于 2013-07-19T01:41:49.890 に答える