StrokesPlus.net でウィンドウのマルチモニタ間移動

「StrokesPlus」はそこそこ情報あるのに、「StrokesPlus.net」の方は調べても全く情報が出てこなかったので久しぶりにメモ

マルチモニタ間を普通に移動させるだけ

- フォアグラウンドウィンドウを取得
- ウィンドウを前の画面に移動

シンプルに動かすだけならこれでいい
けど、タスクバーを上にしてたりするとたまに困ったことに……


なので、それを解消したスクリプトがこれ↓

前のモニタのワーキングエリア(0,0)へ移動

//最大化してたら戻す
if(sp.ForegroundWindow().Maximized) {
    sp.ForegroundWindow().Restore();
}

// アクティブなウィンドウを前のモニタに移動
sp.ForegroundWindow().MoveToPreviousScreen();

// 移動後のウィンドウを取得
var movedWnd = sp.ForegroundWindow();

// ウィンドウのスクリーン座標を取得
var screenX = movedWnd.Screen.WorkingArea.X;
var screenY = movedWnd.Screen.WorkingArea.Y;

// ウィンドウを指定位置に移動
movedWnd.Location = new Point(screenX, screenY);


(0,0)以外に移動させたかったら最後を

movedWnd.Location = new Point(screenX + 10, screenY + 30);

とかにすれば(10,30)に移動してくれる


プログラム全くわからんから「.Screen.WorkingArea」に辿り着くまでに相当時間かかった

https://forum.strokesplus.net/posts/t7071-Working-with-Window-Size-and-Location
↑見てもいまいちわからんかったけど、ChatGPTに解説しまくってもらってなんとなく理解できた
色々言われてるけどChatGPTマジでありがたいわ

しかし、StrokesPlus.netの日本語圏ユーザーって全然いないのかな
本当ちょっとしたことでいいんでTipsを公開してください……
StrokesPlusから移行したくても情報なさすぎてマジでつらい