Window Position Restore

English Page

概要

 PCでは広くなったディスプレイやマルチディスプレイ環境の構築が容易になり、アプリを複数立ち上げることが多くなってきました。
 アプリの終了時にウィンドウの位置を保存し、再実行時に復元しているアプリはありますが、同一アプリを複数個立ち上げた場合、Windowsのスナップ機能等で、都度、ウィンドウの位置を調整する必要があります。
その煩わしさを解消するため、アプリの実行情報とウィンドウの位置を保存し、一括実行し、ウインドウの位置を復元できるランチャーアプリを作成しました。

特徴

  1. デスクトップアプリ、ストアアプリ(UWPアプリ)の両方の実行に対応しています。
  2. 実行後、設定したウィンドウ位置とサイズの変更を行います。
  3. 「設定実行」を行ったことがあるxml設定ファイルを、履歴としてメニューに表示します。履歴のファイル名をクリックすることにより、本アプリのウィンドウを表示せずに、即時実行を行います。
  4. 実行情報を保存したxml設定ファイルを、引数として本アプリを実行することにより、本アプリのウィンドウを表示せずに、xml設定ファイルのアプリの実行だけを行うことも出来ます。
  5. コマンド引数を調べなくても、管理者モードで実行すれば実行コマンドの取得が行えます。
  6. ※クロームのように、アプリがひとつで複数ウィンドウを実行するものは、最初のウィンドウの実行コマンドしか取得できません。
    ※管理者モードで実行しても、実行コマンドの取得が行えないアプリもあります。

動作環境

使用条件

フリーソフトウェアです。無料でご利用頂けます。

本ソフトウェアの使用はすべて自己責任で行ってください。使用した結果生じた損害、不利益については、作者は一切責任を負いません。

ダウンロード

WindowPositionRestore.zip(64bit) Version 1.3.1.2
WindowPositionRestore32.zip(32bit) Version 1.3.1.2
※解凍後、exeファイル実行時に、「WindowsによってPCが保護されました」のメッセージが表示された場合、「詳細情報」リンクをクリック後、「実行」ボタンを押下してください。
※32bit版は、作者がWindows10 32bit環境を所有していない為、Windows10と11の64bit環境で実行確認しました。不具合等あればメールください。

ご寄付について

気に入って頂けた方は、PayPalによるご寄付をご検討ください。頂きましたご寄付は、開発費に充てさせて頂きます。
一度送金頂いたご寄付の返金には、応じかねます。
また、寄付の有無により、機能追加ならびにサポート等に違いが発生することはございません。
ご了承ください。

PayPalによるご寄付

使用概要(ランチャー機能)

  1. ダウンロードした圧縮ファイルを解凍し、適当なフォルダにコピーします。

  2. 管理者モードで、「WindowPositionRestore.exe」を実行します。
    ※「WindowPositionRestore.exe」を実行しても、タスクトレイにアイコンが表示されるだけです。
    タスクトレイのアイコン
    タスクトレイのアイコン

    ※管理者モードで実行しない場合、デスクトップアプリに対しての「Window一覧」ウィンドウの「実行コマンド」が取得できません。
    ※「設定実行」だけを行い、「実行コマンド」を取得する必要が無い場合は、管理者モードで実行しなくも構いません。

  3. 立ち上げたいアプリを、Windowsスタートメニュー等から実行します。(アプリの実行は、WindowPositionRestore.exe実行前でも構いません。)

  4. タスクトレイ上の「WindowPositionRestore」アイコンを右クリックし表示されるメニューの「ウィンドウを表示」をクリックし、「ディスプレイ」ウィンドウと「Windows一覧」ウィンドウを表示します。

  5. タスクトレイのメニュー
    タスクトレイのメニュー

    「ディスプレイ」ウィンドウ
    「ディスプレイ」ウィンドウ

    「Window一覧」ウィンドウ
    「Window一覧」ウィンドウ

  6. 「ディスプレイ」ウィンドウの「設定」ラジオボタンを、クリックします。

  7. 「Window一覧」ウィンドウで、実行したいアプリの設定を変更します。
    1. 実行させたいウィンドウの「実行順」に数値を設定します。
    2. ※「実行順」が空欄の場合、クリックすることにより番号を自動で設定します。
    3. 引数が必要な場合は、「実行コマンド」に出ているコマンドの後ろに、半角スペースをつけ、引数を設定します。
    4. 例)エクスプローラーで、Dドライブを表示させたい場合、「C:\WINDOWS\Explorer.EXE D:\」と「 D:\」を追加します。
    5. ウィンドウの位置やサイズを、「x」、「y」、「幅」、「高さ」で設定します。
    6. ※「ディスプレイ」ウィンドウのウィンドウ矩形をドラッグすることにより、ウィンドウ位置を変更することも出来ます。

  8. 「ディスプレイ」ウィンドウで、「設定実行」ボタンを押します。
  9. 「Window一覧」ウィンドウで、「最小化」でなく、「実行コマンド」と「実行順」が指定されているアプリを、「実行順」の順番で実行します。 アプリ実行後、「幅」と「高さ」が0より大きい場合、ウィンドウの位置とサイズの変更を行います。

  10. 「ディスプレイ」ウィンドウの「設定保存」ボタンで、「Window一覧」のリストを保存します。
  11. 次回からは、「ディスプレイ」ウィンドウの「設定読み込み」ボタンで保存したファイルを読み込み後、「設定実行」ボタンを押すことで、アプリの実行が行えます。 また、一度保存後、「設定実行」を行うと、タスクトレイのメニューに履歴として保存されます。 履歴のファイル名をクリックするだけで、「設定実行」を行います。

  12. アプリケーションの終了は、メニューの「終了」を押します。

    例)Chrome(複数タブ)とEdgeの設定例を、動画にしました。

使用概要(ウィンドウ配置復元機能)

下記のような場合、ウィンドウを並び直すのは大変なため、全仮想デスクトップのウィンドウ位置をメモリに記憶し、その位置を復元する機能を追加しました。
  1. DISPLAY PORTケーブルで、4Kディスプレイと2Kディスプレイをマルチディスプレイとして使用したりした場合、省電力モードに切り替わり、その復帰後、表示していたウィンドウの配置やサイズが変わる
  2. ノートPCでマルチディスプレイ使用時に、サブディスプレイを外して、再度付け直す
※メモリへの記憶は手動分と自動分、それぞれ1つだけとし、「Window Position Restore」終了後には無くなります。
※メモリに記憶するウィンドウは、「Window Position Restore」を管理者モードで起動しない場合、管理者モードで起動したアプリは対象外となります。

ウィンドウ配置復元機能関連メニュー
ウィンドウ配置復元機能関連メニュー
  1. タスクバーメニューの「ウィンドウ位置を、メモリに保存」をクリックすることにより、手動でウィンドウ位置の情報を保存します。
  2. タスクバーのメニュー「Windowsロック・ロック解除で、ウィンドウ位置を自動で保存・復元」にチェックを入れると、ロックした時点のウィンドウ位置を保存し(既に保存されていた場合更新します)、ロック解除で復元処理が自動起動します。
  3. 上記自動処理で上手くいかない場合、タスクバーメニューの「ウィンドウ位置を、メモリから復元」をクリックすることにより、手動でウィンドウ位置の復元をさせることができます。
  4. ※多量のウィンドウを表示している場合、自動処理が正常に動かないことがあります。ロック時にウィンドウ情報を保存しますが、保存中に、ディスプレイの省電力が起動し、ウィンドウ情報が書き換わるためです。

機能詳細(ランチャー機能)

 本アプリは、主に「ディスプレイ」ウィンドウと「Window一覧」ウィンドウ、2つのウィンドウで構成されています。
  1. 「ディスプレイ」ウィンドウ
  2. 「ディスプレイ」ウィンドウ
    アプリのウィンドウを確認する画面で、ディスプレイ領域と、メインウィンドウを矩形で表示します。
    ウィンドウ矩形は、ドラッグし、移動することが可能です。
    1. ディスプレイ矩形
    2. 接続されているディスプレイを、矩形で表します。 Display1から順に連番でサイズとともに情報を表示します。
    3. ウィンドウ矩形
    4. ウィンドウを、黄色の矩形で表します。 枠線をクリックすると選択ウィンドウ矩形となります。「表示」ラジオボタンがオンの場合、ウィンドウを選択すると、選択された本物のウィンドウを前面に表示します。
    5. 選択ウィンドウ矩形
    6. 選択されているウィンドウを、赤色の矩形で表します。 「表示」ラジオボタンがオンの場合、選択された枠線内に現在のウィンドウの画像が表示されます。枠線をドラッグすることにより、本物のウィンドウが移動されます。

    7. 「表示」ラジオボタン
    8. オンの場合、表示されているメインウィンドウを、リアルタイムに表示します。 表示モードは、アプリのコマンド引数取得、ウィンドウ位置を決めるために使用します。
    9. 「設定」ラジオボタン
    10. オンの場合、設定モードに入ります。 「設定読み込み」ボタン、「設定保存」ボタン、「設定実行」ボタンが利用できるようになります。

    11. 「設定読み込み」ボタン
    12. 保存したxml設定ファイルを読み込みます。 xml設定ファイルをオープンすると、指定したxml設定ファイルの内容で、Window一覧のリストをリセットします。
    13. 「設定保存」ボタン
    14. Window一覧のリストを、xml設定ファイルとして保存します。
    15. 「設定実行」ボタン
    16. 「最小化」でなく、「実行コマンド」と「実行順」が指定されているアプリを、「実行順」の順番で実行します。
      実行後、「幅」と「高さ」が0より大きい場合、ウィンドウの位置とサイズの変更を行います。

  3. 「Window一覧」ウィンドウ
  4. 「Window一覧」ウィンドウ
    ウィンドウの一覧を表示、設定します。

    「ディスプレイウィンドウ」の「表示」ラジオボタンがオンの場合、「無視リスト」に設定されていない画面に表示されているウィンドウを、リアルタイムに表示します。
    マウス右クリックにより、後述する「無視リスト」関連のメニューが表示されます。

    「ディスプレイウィンドウ」の「設定」ラジオボタンがオンの場合、実行するウィンドウの設定を行います。
    マウス右クリックにより、行の追加、削除が行えます。

    1. ウィンドウタイトル
    2. 「表示」ラジオボタンがオンの場合、ウィンドウのタイトルをリアルタイムに表示します。
      「設定」ラジオボタンがオンの場合、任意の文字列を設定することが出来ます。この文字列は、アプリの実行に影響を及ぼしません。
    3. 最小化
    4. ウィンドウが最小化している場合「〇」を表示します。
      「表示」ラジオボタンがオンの場合、「最小化」をクリックするとウィンドウ表示されている場合最小化し、最小化している場合ウィンドウ表示に戻します。
    5. 実行順
    6. 「設定実行」ボタン押下時に、アプリを実行する順序を設定します。
      空欄時に、クリックすると最大値の番号+1で番号を設定します。
      数値が設定されている時に、クリックすると空欄になります。
    7. 休止ミリ秒
    8. 「設定実行」ボタン押下時に、アプリ実行後の休止時間をミリ秒で設定します。
      アプリ実行時、アプリの実行時間が遅い場合があり、ウィンドウの実行確認が正しく行えない事があります。 そのような場合、数値を設定し、ウィンドウの実行確認コマンドに対する遅延時間を調整します。
    9. 実行コマンド
    10. 実行コマンドを表示、設定します。
      デスクトップアプリの場合、実行コマンドの設定値そのままで、アプリを実行します。
      ストアアプリの場合、AUMID(AppUserModelID=packagefamilyname + "!" + application.id)を設定してください。
      コマンドや引数に空白が含まれる場合、"(ダブルクォート)で囲ってください。
      例)エクスプローラで、「C:\Program Files (x86)」を開く場合、「C:\WINDOWS\Explorer.EXE "C:\Program Files (x86)"」としてください。
    11. ストア
    12. アプリがストアアプリの場合「〇」を表示します。
      「設定」ラジオボタンがオンの場合、「〇」のオンとオフが行えます。
      「設定実行」ボタン押下時に、「〇」の行は、ストアプリ実行方法で、「実行コマンド」が実行されます。
      「設定実行」ボタン押下時に、「〇」でない行は、デスクトップアプリの実行方法で、「実行コマンド」が実行されます。

    13. ウィンドウの見えている左上隅のx座標を表示、設定します。
      座標は、メインディスプレイの左上隅の座標が、x=0, y=0となります。複数のディスプレイが接続されていて、 メインディスプレイ以外のディスプレイが、メインディスプレイより左にある場合、x座標は-(マイナス)がつきます。また、 メインディスプレイ以外のディスプレイが、メインディスプレイより上にある場合、y座標は-(マイナス)がつきます。
      ※ディスプレイ番号は、関係ありません。
    14. ウィンドウの見えている左上隅のy座標を表示、設定します。
    15. ウィンドウの幅を表示、設定します。0の場合は、行全体の背景色が黄色になります。
    16. 高さ
    17. ウィンドウの高さを表示、設定します。0の場合は、行全体の背景色が黄色になります。

  5. 「無視リスト」ウィンドウ
  6. 「無視リスト」ウィンドウ
    「表示」ラジオボタンがオン時、表示させたくないウィンドウを、無視リストに設定することが出来ます。
    1. 「Window一覧」ウィンドウで、表示させたくないウィンドウを選択します。
    2. マウス右ボタンを押し、ショートカットメニューを表示します。
    3. 「無視リストへ追加」をクリックします。(再表示させたい場合は、「無視リスト」ウィンドウで「無視リストから除外」を設定してください。)

使用上の注意点

  1. 「Window一覧」ウィンドウに表示されるウィンドウについて
  2. 「Window一覧」ウィンドウには、ウィンドウであり、サイズが0でないウィンドウを表示しています。そのため、システムの隠しウィンドウ等が表示されることがあります。 タスクバーに見られないような、それらウィンドウは、最小化や実行等は行わないようにご注意ください。
  3. 本アプリは、汎用的になるように作成していますが、あらゆるアプリの実行コマンドの取得、実行を保証するものではありません。
  4. 後述するChrome等のように、アプリごとに実行の仕組みやウィンドウ制御に違いがあり、全てのアプリの解析をするのが難しいことが理由です。
  5. Chromeについて
    1. 実行について
    2.  引数にURLを指定し実行した時、すでにクロームウィンドウが存在する場合、タブを追加し、表示します。
       URLの引数と共に、「 --new-window」を指定すると、新しいウィンドウとして表示されます。
  6. Edgeについて(ストアアプリ版)
    1. 実行について
    2.  Edgeも、引数にURLを指定し実行した時、すでにEdgeウィンドウが存在する場合、タブを追加し、表示します。
      クロームのようなオプションがないため、本アプリでは引数が設定され、幅と高さが0より大きい場合、一度空のEdgeウィンドウを表示し、引数のURLに移動させる処理としています。そのため、一度最初のページが表示されます。
    3. Windows再起動後の動作ついて(2020/03/06時点)
    4.  Edgeのウィンドウを複数表示した状態で、Windowsを終了します。その後、Windowsの再起動を行い、Edgeを起動すると、再起動前の複数ウィンドウを位置は戻さず、ひとつのディスプレイに表示します。
      そのような状況で本アプリの「設定実行」を行った場合、Windowsの起動前のウィンドウと設定したウィンドウが混ざって表示されます。
       理由としては、本アプリの「設定実行」処理中に、本アプリ以外の要因で、アプリのウィンドウ数が変わった場合、本アプリで起動したウィンドウかの判断がつかなくなるためです。
       そのため、Edgeは、Windows再起動後に、Edgeを起動し、タスクバーでEdgeの「すべてのウィンドウを閉じる」を行い、本アプリの「設定実行」を行っていただく必要があります。
  7. Edgeについて(Chromium版)(2020/06/26時点)
    1. 実行について
    2.  新しいEdgeは、Chromiumを基にしていることからか、Chromeと同様な動きになりました。実行コマンドもmsedge.exeに変更となり、ストアアプリ(UWPアプリ)でなくなりました。ウィンドウを別に表示する場合は、chromeと同様に実行コマンドに「 --new-window」を付けることにより、新しいウィンドウが表示されようになりました。また、新しいEdgeがインストールされると、以前のストアアプリ版Edgeが削除され、戻すことが出来ないようです。
       そのような仕様で、新しいEdgeがインストールされ、xml設定ファイルにストアプリのEdgeを登録されていて、本アプリの「設定実行」を行うと、URL移動やウィンドウの位置調整が行えず、エラーとなってしまいます。
       Edge対応をいろいろ行ってきましたが、本アプリで、上記の場合、実行コマンドの変更を行う対応は、今のところ考えておりません。
       そのため、「設定実行」でエラーになる場合は、実行コマンドを、パスを含めたmsedge.exeに書き換え、ストア列をオフに登録し直して頂く必要があります。

更新履歴

ご意見、ご感想


前のページに戻る