表示されているウィンドウを常に同じ位置に指定したい事とかは良く有る事です。マウスで移動するよりも
数字で位置指定したり 何々ウィンドウの次とか 下とかでする事で正確に合わせられる様に 又 ランチャー等からの
使用も コマンドラインで出来る様にしたのが 此の PosWindow です。
コマンドラインに何か入れて指定する時はショートカットのプロパティーやランチャーの
コマンドライン指定 等に下記のコマンドラインを指定して立ち上げて下さい。
*コマンドライン の基本は
PosWindow.EXE 移動ウィンドウ /移動先 *500,400 が基本になります。
PosWindow.EXE [クラス名,タイトル文字列 or Sor A ] /X位置,Y位置 or or /[A〜E][1〜5]クラス名,タイトル文字列
*500,400 は 移動ウィンドウ のサイズも同時に指定出来ます。( 無ければサイズは変えません。後の方の *が有効です。)
移動ウィンドウ の指定は [クラス名,タイトル文字列 or Sor A ]
クラス名,タイトル文字列 を持つウィンドウを動かします。
- クラス名,タイトル の指定は クラス名は フルで タイトルは 部分的にマッチ( 大文字 小文字の区別は無し。)
すれば 指定された物とします。
- クラス名だけの時は タイトルは何でも OK で 指定された物とします。
- クラス名,-タイトル の時は タイトルにマッチしない物が指定された物となります。
- クラス名,- でタイトル の無い時はタイトルを持たない物が指定された物となります。
上記の クラス名,タイトル文字列 での指定は 移動先のウィンドウ の指定でも同様です。
S 最初にShift キーを押した時にマウスカーソルの下に有ったウィンドウを ( X,Y )に移動します。
Shift が 7 秒以内に押されなければ何もしないで終わります。すぐにやめたい時には ESC キーを
押して下さい。
A 立ち上げられた時にアクティブだったウィンドウを 移動します。
移動先 の指定は /X位置,Y位置 or /[WXYZ]クラス名,タイトル文字列 /[wxyz]クラス名,タイトル文字列
/100,200 左上から 右方向 100 ピクセル 下方向 200 ピクセルに 左上の角を 移動します。
X位置,,Y位置 でどちらかが無い時にはない方はその時のウィンドウの位置( x or y )を使用します。
/100'200 だと 右下の角を 100,200 に移動します。
/N,N 数字の代わりに N を使用すると動かされる前の自分の X 方向なら 右に Y 方向なら 下にの意味に
なります。
/[A〜E][1〜5]クラス名,タイトル文字列 or [M(1〜9)}
クラス名,タイトル文字列( どちらかが無いのも認めます。) を持つウィンドウを基準に移動します。
クラス名,タイトル文字列が共に無い時には デスクトップを基準にします。
M1〜M9 マルチモニターの 1〜9番目 を基準にします。
A B C D E
1 A1 B1 C1 D1 E1 1
┌───────┐
2 A2│B2 C2 D2│E2 2
│ │
3 A3│B3 C3 D3│E3 3
│基準ウィンドウ│
4 A4│B4 C4 D4│E4 4
└───────┘
5 A5 B5 C5 D5 E5 5
A B C D E
[A〜E] 横方向
A 移動ウィンドウの右辺を基準ウィンドウの左辺に合わせます。
B 移動ウィンドウの左辺を基準ウィンドウの左辺に合わせます。
C 左右方向には移動しません。
D 移動ウィンドウの右辺を基準ウィンドウの右辺に合わせます。
E 移動ウィンドウの左辺を基準ウィンドウの右辺に合わせます。
[1〜5] 縦方向
1 移動ウィンドウの下辺を基準ウィンドウの上辺に合わせます。
2 移動ウィンドウの上辺を基準ウィンドウの上辺に合わせます。
3 上下方向には移動しません。
4 移動ウィンドウの下辺を基準ウィンドウの下辺に合わせます。
5 移動ウィンドウの上辺を基準ウィンドウの上辺に合わせます。
・移動先 の指定が無い時には Shift Ctrl が押された時のマウスカーソルの位置で移動先を決定します。
Shift が押されたれら基準はデスクトップです。( 下記の より・・には当てはまりません。)
Ctrl が押されたれら基準はその時のアクティブウィンドウです。
( Ctrl を押す前に何らかの形で基準ウィンドウをアクティブにして置いて下さい。)
押された時のマウスカーソルの左右位置が
基準ウィンドウより左 A 移動ウィンドウの右辺を基準ウィンドウの左辺に合わせます。
基準ウィンドウ内の左 B 移動ウィンドウの左辺を基準ウィンドウの左辺に合わせます。
基準ウィンドウ中程 C 左右方向には移動しません。
基準ウィンドウ内の右 D 移動ウィンドウの右辺を基準ウィンドウの右辺に合わせます。
基準ウィンドウより右 E 移動ウィンドウの左辺を基準ウィンドウの右辺に合わせます。
押された時のマウスカーソルの上下位置が
基準ウィンドウより上 1 移動ウィンドウの下辺を基準ウィンドウの上辺に合わせます。
基準ウィンドウ内の上 2 移動ウィンドウの上辺を基準ウィンドウの上辺に合わせます。
基準ウィンドウ中程 3 上下方向には移動しません。
基準ウィンドウ内の下 4 移動ウィンドウの下辺を基準ウィンドウの下辺に合わせます。
基準ウィンドウより下 5 移動ウィンドウの上辺を基準ウィンドウの上辺に合わせます。
・上記の上下左右がを組み合わせた所に移動します。
・基準ウィンドウ内の○ と言うのは一辺の長さの端から 1/4 以内の位置です。
・ESC キーでキャンセルです。Shift Ctrl が 10秒以内に押されなければやはりキャンセルです。
・C3 の位置では何も動きません。
PosWindow.EXE CabinetWClass,C:\WINDOWS /100,200
C:\Window を表示しているウィンドウを 100,200 ( それぞれ 左上からのドット指定 ) に移動します。
PosWindow.EXE S /100
Shift キーを押した時にマウスカーソルの下に有ったウィンドウのX方向だけを 100 にします。
PosWindow.EXE S /N
Shift キーを押した時にマウスカーソルの下に有ったウィンドウをそのウィンドウの右端に移動します。
PosWindow.EXE S /D2
Shift キーを押した時にマウスカーソルの下に有ったウィンドウを場面の右上端に移動します。
PosWindow.EXE S /B2
Shift キーを押した時にマウスカーソルの下に有ったウィンドウを場面の左下端に移動します。
PosWindow.EXE S /D4
Shift キーを押した時にマウスカーソルの下に有ったウィンドウを場面の右下端に移動します。
PosWindow.EXE CabinetWClass,C:\WINDOWS /B4M2
C:\Window を表示しているウィンドウを セカンダリーディスプレーの左下端に移動します。
PosWindow.EXE IEFrame, /0,0
インターネットエクスプローラーの左上方を画面の 0,0 にセットします。
PosWindow.EXE IEFrame, /1000'1000
インターネットエクスプローラーの右下を1000,1000 になる様に移動します。
PosWindow.EXE S /B2IEFrame
Shift キーを押した時にマウスカーソルの下に有ったウィンドウをインターネットエクスプローラーの
ウィンドウと左上方を合わせます。
PosWindow.EXE だけのコマンドライン無しの時は 移動するウィンドウにマウスカーソルを置いて Shift で
決定して 移動先はデスクトップの上下左右にマウスカーソルを置いて Shift で決定と言う事になります。
この時は 最初の Shift で移動するウィンドウが決まった時にビープを鳴らします。
PosWindow.EXE だけのコマンドライン無しの時は 移動するウィンドウにマウスカーソルを置いて Shift で
決定して ( アクティブ色にしてビープを鳴らします。) 移動先はデスクトップが基準なら指定位置に
B2〜D2 にマウスカーソルを置いて Shift を押す事で移動 特定ウィンドウが基準なら それをアクティブに
してから A1〜E5 にマウスカーソルを置いて Control を押す事で移動と言う事になります。
移動ウィンドウが決まった時点でそのウィンドウはアクティブ色になります。システム等の移動出来ない
ウィンドウの時は警告音を出して終了します。
ウィンドウの画面からはみ出して移動できない程移動はさせない様にしていますが間違いもあって見えなくなって
しまうかもしれません。その様な時はタスクバーから処理して下さい。
此の プログラムは バグ 動作不良などが無い事を期待されて作られてはいますが 違う環境での
正常動作 又 誤動作から来る損害など についての 保証はいたしかねます。
ただし ご意見 提案 動作不具合報告等は歓迎いたします。
2007/11/20 Ver 1.000 初公開。
2009/04/15 Ver 1.100
コマンドライン解析部分を若干ですが堅くし効率化しました。Windows 98 用のモリマネージャー読み込み
時間短縮オプションをやめてアプリケーションのサイズ ( ディスク サイズ )を縮小しました。
2011/02/11 Ver 1.200
ウィンドウの左上 だけの指定でなく右下の位置の指定も出来る様に拡張しました。基準を指定しない時には
デスクトップを指定した事にしました。
2011/09/25 Ver 1.300
コマンドラインでの指定で 動かすウィンドウ 動かす場所 と分けて それぞれ指定されている時と いない時とを
分けて処理する事にしました。従って 全くコマンドラインが無い時でも使用出来る様になり汎用性が
上がりました。
コマンドラインでの指定で 動かす場所の指定が解りにくく全ての位置に動かせなかったので 横[A〜E] 縦[1〜5] と
マウスカーソルと同じ場所指定にしてイメージし易くしました。
2011/10/28 Ver 1.400
コマンドラインでの指定でのウィンドウの取り違いを防ぐ為 動かすウィンドウはかたちのある物( 大きさのある物 )
まで探す様にしました。又 動かすウィンドウを認識しやすい様にアクティブで無い物はタイトルバーを
アクティブ色にして示す様にしました。
2014/05/18 Ver 1.500
クラス,タイトル指定 は クラス名は大文字小文字を区別しないフルのクラス名で タイトル指定 は大文字小文字を
区別しない 部分マッチで良い事にしてタイトル名の指定柔軟性を上げると同時に タイトル名の指定もし易くしました。
ウィンドウを列挙するのを自前の関数からウィンドウ API の本来持つ推奨方式に変えて効率を高めました。
ウィンドウを認識するカーソルの範囲が1ドットずれても反応してしまう事を修正しました。
2016/06/03 Ver 1.600
移動と同時にサイズもコマンドラインから指定出来る様にしました。
DPI スケーリング は自身でする事を宣言し 位置指定や サイズ指定が OS の DPI の仮想化 による
スケーリング の影響を受ける事の無い様にしました。
移動ウィンドウが最大化 最小化している時には 安全の為何もしない事にしました。
2018/04/25 Ver 1.620
システムの プログラムマネージャー タスクバー のウィンドウハンドルを 取得するのを 通常の 真っ当な
方法で取得する様にして取り違えの可能性を排除しました。
2020/05/10 Ver 1.700
コマンドライン /200,100 等の直に数字で指定する値をマルチディスプレーの 位置対応も考えて -500 等の
負の数も認める様にしました。又 この部分の解析の最後で危ない部分を修正しました。
/[A〜E][1〜5] の場合は 新たな SW [M1〜M9] を新設して プライマリーデスクトップだけでなく 1〜9 ディスプ
レーも 指定できる様にしました。