2010 年 3 月 21 日

ウインドウをプライマリに集めるアプリ『WindowReunion』


マルチディスプレイ上に散らばったウインドウを、プライマリディスプレイ上に集めるアプリが欲しかったので作ってしまいました☆

『WindowReunion』と名付けました。

「終了時の座標を覚えているアプリケーション」が次の例になった場合にも、WindowReunionは活躍します。

例1:PCを起動しつつ、セカンダリディスプレイの映像入力をHDMIなどに切り替えてゲーム機の映像を映している場合。

例2:ディスプレイの解像度や構成を変えた後に「終了時の座標を覚えているアプリケーション」を起動させたら、
   現在のディスプレイの画面外に表示されてしまった場合

どちらの場合でも簡単にプライマリ上に呼び戻せます。


■ダウンロード:WindowReunion112.zip
※2010-09-01にv1.1.2に更新しました

動作確認環境
・Windows XP SP3 32bit ※「.NET Framework2.0」以上必須(推奨3.5)
・[推奨]Windows 7 32bit/64bit

使い方:WindowReunion.exeを起動させてReunionボタンを押すだけ

Before


After


仕組みとしては、EnumWindowsで列挙した全てのウインドウハンドルに対してSetWindowPosをキメているだけなので、このWindowReunionを実行したことによって、もしかしたら見えてはいけないウインドウがタスクバー上に出現してしまうかも知れません。
その他、不具合が起きてもmontaは一切責任を負いませんので予めご了承ください。

それにしても、どうやってもSteamクライアントだけ移動できないんですよ。
まぁセカンダリディスプレイで何かしつつ、Steamでも何かしたいというパターンは限られるので、そこまで困ることはないですよね?

追記(2010-08-14): Steamクライアントがバージョンアップしたら普通に動くようになってました。
Filed under: Software — monta @ 13:20

5 Comments »

  1. 使わせていただきました。vista sp2 32bitで確認。
    私もxbox360をしながら、攻略wikiを見ることが多いので便利です。
    マルチモニター向けのアプリって以外と少ないですよね。

    Comment by zabuton — 2010 年 3 月 21 日 @ 20:17

  2. ( ´∀`)< こんばんは、被験体1号のzabutonさん

    無事に動いているようで何よりです。
    マルチモニタ向けのツールが少ない理由として、案外プログラマはシングルディスプレイ環境だったり、
    デュアル環境でも基本的にPCは開発ツールとしてしか使っていなく、遊び用やCG用として使う場合の不便なことを
    思いつかなかいためだと勝手に想像しています。

    Comment by monta — 2010 年 3 月 21 日 @ 23:25

  3. それはトップレベルウィンドウじゃないから列挙されないからな!と、ミサカはミサカは申しております。

    Comment by — 2010 年 3 月 22 日 @ 01:57

  4. 丼先生こんにちは。ようこそお出でくださいました。

    ヒントを頼りに、子ウインドウを列挙するEnumChildWindowsを試してみました。
    http://monta.moe.in/images/img14/100321_03.png
    Steamクライアントが内部に子ウインドウを持っていることはわかったのですが、
    やはり大元の親ウインドウが移動してくれないんですよ。

    一応、EnumWindowsでSteamのウインドウタイトルを持つハンドルは取得できていて、
    SetWindowPosの結果もtrueが返ってきてはいるのですが……現実はチャイルドエラー。

    Comment by monta — 2010 年 3 月 22 日 @ 10:31

  5. こういうアプリをまっていたのです。
    ほんとうに助かりました。
    Win7 64bit

    Comment by すばらしい — 2013 年 1 月 1 日 @ 10:46

RSS feed for comments on this post.

Leave a comment

※コメントの反映には2時間ほど時間がかかります。それ以上経過しても反映されない場合、スパムとして振り分けられている可能性がありますのでURLを含まない本文や日本語の名前で再投稿してください。