C# を使用して別のアプリケーションの位置を取得および設定するにはどうすればよいですか?
たとえば、メモ帳の左上の座標 (100,400 のどこかに浮かんでいるとしましょう) と、このウィンドウの位置を 0,0 に取得したいと考えています。
これを達成する最も簡単な方法は何ですか?
C# を使用して別のアプリケーションの位置を取得および設定するにはどうすればよいですか?
たとえば、メモ帳の左上の座標 (100,400 のどこかに浮かんでいるとしましょう) と、このウィンドウの位置を 0,0 に取得したいと考えています。
これを達成する最も簡単な方法は何ですか?
私は実際、この種のことのためだけにオープンソースDLLを作成しました。 ここからダウンロード
これにより、他のアプリケーションウィンドウとそのコントロールに対して、検索、列挙、サイズ変更、再配置、または必要な操作を行うことができます。ウィンドウ/コントロールの値/テキストを読み書きし、それらに対してクリックイベントを実行する機能も追加されています。基本的には画面スクレイピングを行うために作成されましたが、すべてのソースコードが含まれているため、ウィンドウで実行したいすべてのものが含まれています。
FindWindow ( signature ) を使用して、ターゲット ウィンドウの HWND を取得してみてください。次に、SetWindowPos ( signature ) を使用して移動できます。
これを実現するには、som P/Invoke 相互運用機能を使用する必要があります。基本的な考え方は、最初にウィンドウを見つけ (たとえば、EnumWindows 関数を使用)、次にGetWindowRectでウィンドウの位置を取得することです。