他アプリの位置を操作 への返答

投稿で使用できる特殊コードの説明。(別タブで開きます。)
本名は入力しないようにしましょう。
投稿した後で削除するときに使うパスワードです。返答があった後は削除できません。
返答する人が目安にします。相手が小学生か社会人かで返答の仕方も変わります。
最初の投稿が質問の場合、質問者が解決時にチェックしてください。(以降も追加書き込み・返信は可能です。)
※「過去ログ」について書くときはその過去ログのURLも書いてください。

以下の返答は逆順(新しい順)に並んでいます。

投稿者 taka  (社会人) 投稿日時 2021/1/13 21:22:33
るきお様 返信ありがとうございます。
 
 色々未知の情報を頂きました恐縮です。
 とにかく解法の糸口が見つかりませんでしたので助かります。
 ご返信の机上の案ですが、ご紹介いただいたサイトを巡り
 これからゆっくりと追々勉強していくのでまた何かあればよろしくお願いいたします。

 
投稿者 るきお  (社会人) 投稿日時 2021/1/13 20:42:35
私ならば次のように考えます。実際に作ったことはないので机上の案です。

まず、Process.GetProcessByName("chrome") で 実行中のChromeのプロセスを取得します。
Chromeはバックグラウンドのプロセスも存在するので、MainWindowHandleプロパティを確認することでウィンドウが表示されているプロセスかどうかわかります。

ウィンドウが表示されているプロセスは MainWindowHandleプロパティでWindowのハンドルを取得できます。

このハンドルがあれば、Windows API の SetWindowPositionでウィンドウの位置を変更できます。
https://docs.microsoft.com/ja-jp/windows/win32/api/winuser/nf-winuser-setwindowpos
変更すべき位置は、Screen.AllScreens ですべてのディスプレイの座標と大きさ取得することで割り出します。

また ShowWindow で最大化を命令できます。
https://docs.microsoft.com/ja-jp/windows/win32/api/winuser/nf-winuser-showwindow

ひょっとするとこれを組み合わせて目的のウィンドウに移動させた上で最大化する必要があるかもしれません。
投稿者 taka  (社会人) 投稿日時 2021/1/13 15:07:37
こんにちは。またお世話になります。

表題の件ですが、現在 モニタ1モニタ2モニタ3がありchromeブラウザがモニター1のどこかに位置しているとして強制的に他モニターに最大化で表示させたいのですがこうゆうのはwindows10のレジストリ?に関係してくるものなんですか?よくわかっていません。

 どうすればよいのでしょうか?全く分からないのでヒントなんかを教えていただければ幸いです。