Window Position Restore
English Page
概要
PCでは広くなったディスプレイやマルチディスプレイ環境の構築が容易になり、アプリを複数立ち上げることが多くなってきました。
アプリの終了時にウィンドウの位置を保存し、再実行時に復元しているアプリはありますが、同一アプリを複数個立ち上げた場合、Windowsのスナップ機能等で、都度、ウィンドウの位置を調整する必要があります。
その煩わしさを解消するため、アプリの実行情報とウィンドウの位置を保存し、一括実行し、ウインドウの位置を復元できるランチャーアプリを作成しました。
特徴
デスクトップアプリ、ストアアプリ(UWPアプリ)の両方の実行に対応しています。
実行後、設定したウィンドウ位置とサイズの変更を行います。
「設定実行」を行ったことがあるxml設定ファイルを、履歴としてメニューに表示します。履歴のファイル名をクリックすることにより、本アプリのウィンドウを表示せずに、即時実行を行います。
実行情報を保存したxml設定ファイルを、引数として本アプリを実行することにより、本アプリのウィンドウを表示せずに、xml設定ファイルのアプリの実行だけを行うことも出来ます。
コマンド引数を調べなくても、管理者モードで実行すれば実行コマンドの取得が行えます。
※クロームのように、アプリがひとつで複数ウィンドウを実行するものは、最初のウィンドウの実行コマンドしか取得できません。
※管理者モードで実行しても、実行コマンドの取得が行えないアプリもあります。
動作環境
OS:Windows 10, 11
※NET FrameWork 4.7.2以降(4.7.2は、Windows10の10 April 2018 Update (バージョン 1803)と同時にリリースされました。)
使用条件
フリーソフトウェアです。無料でご利用頂けます。
本ソフトウェアの使用はすべて自己責任で行ってください。使用した結果生じた損害、不利益については、作者は一切責任を負いません。
ダウンロード
WindowPositionRestore.zip(64bit) Version 1.3.1.4 ※Windows11はこちらを使ってください。
WindowPositionRestore32.zip(32bit) Version 1.3.1.4
※解凍後、exeファイル実行時に、「WindowsによってPCが保護されました」のメッセージが表示された場合、「詳細情報」リンクをクリック後、「実行」ボタンを押下してください。
※32bit版は、作者がWindows10 32bit環境を所有していない為、Windows10と11の64bit環境で実行確認しました。不具合等あればメールください。
ご寄付について
気に入って頂けた方は、PayPalによるご寄付をご検討ください。頂きましたご寄付は、開発費に充てさせて頂きます。
一度送金頂いたご寄付の返金には、応じかねます。
また、寄付の有無により、機能追加ならびにサポート等に違いが発生することはございません。
ご了承ください。
PayPalによるご寄付
1. ¥300 JPY
2. ¥500 JPY
3. ¥1,000 JPY
4. ¥2,000 JPY
5. ¥3,000 JPY
使用概要(ランチャー機能)
ダウンロードした圧縮ファイルを解凍し、適当なフォルダにコピーします。
管理者モードで、「WindowPositionRestore.exe」を実行します。
※「WindowPositionRestore.exe」を実行しても、タスクトレイにアイコンが表示されるだけです。
タスクトレイのアイコン
※管理者モードで実行しない場合、デスクトップアプリに対しての「Window一覧」ウィンドウの「実行コマンド」が取得できません。
※「設定実行」だけを行い、「実行コマンド」を取得する必要が無い場合は、管理者モードで実行しなくも構いません。
立ち上げたいアプリを、Windowsスタートメニュー等から実行します。(アプリの実行は、WindowPositionRestore.exe実行前でも構いません。)
タスクトレイ上の「WindowPositionRestore」アイコンを右クリックし表示されるメニューの「ウィンドウを表示」をクリックし、「ディスプレイ」ウィンドウと「Windows一覧」ウィンドウを表示します。
タスクトレイのメニュー
「ディスプレイ」ウィンドウ
「Window一覧」ウィンドウ
「ディスプレイ」ウィンドウの「設定」ラジオボタンを、クリックします。
「Window一覧」ウィンドウで、実行したいアプリの設定を変更します。
実行させたいウィンドウの「実行順」に数値を設定します。
※「実行順」が空欄の場合、クリックすることにより番号を自動で設定します。
引数が必要な場合は、「実行コマンド」に出ているコマンドの後ろに、半角スペースをつけ、引数を設定します。
例)エクスプローラーで、Dドライブを表示させたい場合、「C:\WINDOWS\Explorer.EXE D:\」と「 D:\」を追加します。
ウィンドウの位置やサイズを、「x」、「y」、「幅」、「高さ」で設定します。
※「ディスプレイ」ウィンドウのウィンドウ矩形をドラッグすることにより、ウィンドウ位置を変更することも出来ます。
「ディスプレイ」ウィンドウで、「設定実行」ボタンを押します。
「Window一覧」ウィンドウで、「最小化」でなく、「実行コマンド」と「実行順」が指定されているアプリを、「実行順」の順番で実行します。 アプリ実行後、「幅」と「高さ」が0より大きい場合、ウィンドウの位置とサイズの変更を行います。
「ディスプレイ」ウィンドウの「設定保存」ボタンで、「Window一覧」のリストを保存します。
次回からは、「ディスプレイ」ウィンドウの「設定読み込み」ボタンで保存したファイルを読み込み後、「設定実行」ボタンを押すことで、アプリの実行が行えます。 また、一度保存後、「設定実行」を行うと、タスクトレイのメニューに履歴として保存されます。 履歴のファイル名をクリックするだけで、「設定実行」を行います。
アプリケーションの終了は、メニューの「終了」を押します。
例)Chrome(複数タブ)とEdgeの設定例を、動画にしました。
使用概要(ウィンドウ配置復元機能)
下記のような場合、ウィンドウを並び直すのは大変なため、全仮想デスクトップのウィンドウ位置をメモリに記憶し、その位置を復元する機能を追加しました。
DISPLAY PORTケーブルで、4Kディスプレイと2Kディスプレイをマルチディスプレイとして使用したりした場合、省電力モードに切り替わり、その復帰後、表示していたウィンドウの配置やサイズが変わる
ノートPCでマルチディスプレイ使用時に、サブディスプレイを外して、再度付け直す
※メモリへの記憶は手動分と自動分、それぞれ1つだけとし、「Window Position Restore」終了後には無くなります。
※メモリに記憶するウィンドウは、「Window Position Restore」を管理者モードで起動しない場合、管理者モードで起動したアプリは対象外となります。
ウィンドウ配置復元機能関連メニュー
タスクバーメニューの「ウィンドウ位置を、メモリに保存」をクリックすることにより、手動でウィンドウ位置の情報を保存します。
タスクバーのメニュー「Windowsロック・ロック解除で、ウィンドウ位置を自動で保存・復元」にチェックを入れると、ロックした時点のウィンドウ位置を保存し(既に保存されていた場合更新します)、ロック解除で復元処理が自動起動します。
上記自動処理で上手くいかない場合、タスクバーメニューの「ウィンドウ位置を、メモリから復元」をクリックすることにより、手動でウィンドウ位置の復元をさせることができます。
※多量のウィンドウを表示している場合、自動処理が正常に動かないことがあります。ロック時にウィンドウ情報を保存しますが、保存中に、ディスプレイの省電力が起動し、ウィンドウ情報が書き換わるためです。
機能詳細(ランチャー機能)
本アプリは、主に「ディスプレイ」ウィンドウと「Window一覧」ウィンドウ、2つのウィンドウで構成されています。
「ディスプレイ」ウィンドウ
アプリのウィンドウを確認する画面で、ディスプレイ領域と、メインウィンドウを矩形で表示します。
ウィンドウ矩形は、ドラッグし、移動することが可能です。
ディスプレイ矩形
接続されているディスプレイを、矩形で表します。 Display1から順に連番でサイズとともに情報を表示します。
ウィンドウ矩形
ウィンドウを、黄色の矩形で表します。 枠線をクリックすると選択ウィンドウ矩形となります。「表示」ラジオボタンがオンの場合、ウィンドウを選択すると、選択された本物のウィンドウを前面に表示します。
選択ウィンドウ矩形
選択されているウィンドウを、赤色の矩形で表します。 「表示」ラジオボタンがオンの場合、選択された枠線内に現在のウィンドウの画像が表示されます。枠線をドラッグすることにより、本物のウィンドウが移動されます。
「表示」ラジオボタン
オンの場合、表示されているメインウィンドウを、リアルタイムに表示します。 表示モードは、アプリのコマンド引数取得、ウィンドウ位置を決めるために使用します。
「設定」ラジオボタン
オンの場合、設定モードに入ります。 「設定読み込み」ボタン、「設定保存」ボタン、「設定実行」ボタンが利用できるようになります。
「設定読み込み」ボタン
保存したxml設定ファイルを読み込みます。 xml設定ファイルをオープンすると、指定したxml設定ファイルの内容で、Window一覧のリストをリセットします。
「設定保存」ボタン
Window一覧のリストを、xml設定ファイルとして保存します。
「設定実行」ボタン
「最小化」でなく、「実行コマンド」と「実行順」が指定されているアプリを、「実行順」の順番で実行します。
実行後、「幅」と「高さ」が0より大きい場合、ウィンドウの位置とサイズの変更を行います。
「Window一覧」ウィンドウ
ウィンドウの一覧を表示、設定します。
「ディスプレイウィンドウ」の「表示」ラジオボタンがオンの場合、「無視リスト」に設定されていない画面に表示されているウィンドウを、リアルタイムに表示します。
マウス右クリックにより、後述する「無視リスト」関連のメニューが表示されます。
「ディスプレイウィンドウ」の「設定」ラジオボタンがオンの場合、実行するウィンドウの設定を行います。
マウス右クリックにより、行の追加、削除が行えます。
ウィンドウタイトル
「表示」ラジオボタンがオンの場合、ウィンドウのタイトルをリアルタイムに表示します。
「設定」ラジオボタンがオンの場合、任意の文字列を設定することが出来ます。この文字列は、アプリの実行に影響を及ぼしません。
最小化
ウィンドウが最小化している場合「〇」を表示します。
「表示」ラジオボタンがオンの場合、「最小化」をクリックするとウィンドウ表示されている場合最小化し、最小化している場合ウィンドウ表示に戻します。
実行順
「設定実行」ボタン押下時に、アプリを実行する順序を設定します。
空欄時に、クリックすると最大値の番号+1で番号を設定します。
数値が設定されている時に、クリックすると空欄になります。
休止ミリ秒
「設定実行」ボタン押下時に、アプリ実行後の休止時間をミリ秒で設定します。
アプリ実行時、アプリの実行時間が遅い場合があり、ウィンドウの実行確認が正しく行えない事があります。 そのような場合、数値を設定し、ウィンドウの実行確認コマンドに対する遅延時間を調整します。
実行コマンド
実行コマンドを表示、設定します。
デスクトップアプリの場合、実行コマンドの設定値そのままで、アプリを実行します。
ストアアプリの場合、AUMID(AppUserModelID=packagefamilyname + "!" + application.id)を設定してください。
コマンドや引数に空白が含まれる場合、"(ダブルクォート)で囲ってください。
例)エクスプローラで、「C:\Program Files (x86)」を開く場合、「C:\WINDOWS\Explorer.EXE "C:\Program Files (x86)"」としてください。
ストア
アプリがストアアプリの場合「〇」を表示します。
「設定」ラジオボタンがオンの場合、「〇」のオンとオフが行えます。
「設定実行」ボタン押下時に、「〇」の行は、ストアプリ実行方法で、「実行コマンド」が実行されます。
「設定実行」ボタン押下時に、「〇」でない行は、デスクトップアプリの実行方法で、「実行コマンド」が実行されます。
x
ウィンドウの見えている左上隅のx座標を表示、設定します。
座標は、メインディスプレイの左上隅の座標が、x=0, y=0となります。複数のディスプレイが接続されていて、 メインディスプレイ以外のディスプレイが、メインディスプレイより左にある場合、x座標は-(マイナス)がつきます。また、 メインディスプレイ以外のディスプレイが、メインディスプレイより上にある場合、y座標は-(マイナス)がつきます。
※ディスプレイ番号は、関係ありません。
y
ウィンドウの見えている左上隅のy座標を表示、設定します。
幅
ウィンドウの幅を表示、設定します。
0の場合は、行全体の背景色が黄色になります。
高さ
ウィンドウの高さを表示、設定します。
0の場合は、行全体の背景色が黄色になります。
「無視リスト」ウィンドウ
「表示」ラジオボタンがオン時、表示させたくないウィンドウを、無視リストに設定することが出来ます。
「Window一覧」ウィンドウで、表示させたくないウィンドウを選択します。
マウス右ボタンを押し、ショートカットメニューを表示します。
「無視リストへ追加」をクリックします。(再表示させたい場合は、「無視リスト」ウィンドウで「無視リストから除外」を設定してください。)
使用上の注意点
「Window一覧」ウィンドウに表示されるウィンドウについて
「Window一覧」ウィンドウには、ウィンドウであり、サイズが0でないウィンドウを表示しています。
そのため、システムの隠しウィンドウ等が表示されることがあります。 タスクバーに見られないような、それらウィンドウは、最小化や実行等は行わないようにご注意ください。
本アプリは、汎用的になるように作成していますが、あらゆるアプリの実行コマンドの取得、実行を保証するものではありません。
後述するChrome等のように、アプリごとに実行の仕組みやウィンドウ制御に違いがあり、全てのアプリの解析をするのが難しいことが理由です。
Chromeについて
実行について
引数にURLを指定し実行した時、すでにクロームウィンドウが存在する場合、タブを追加し、表示します。
URLの引数と共に、「 --new-window」を指定すると、新しいウィンドウとして表示されます。
Edgeについて(ストアアプリ版)
実行について
Edgeも、引数にURLを指定し実行した時、すでにEdgeウィンドウが存在する場合、タブを追加し、表示します。
クロームのようなオプションがないため、本アプリでは引数が設定され、幅と高さが0より大きい場合、一度空のEdgeウィンドウを表示し、引数のURLに移動させる処理としています。そのため、一度最初のページが表示されます。
Windows再起動後の動作ついて(2020/03/06時点)
Edgeのウィンドウを複数表示した状態で、Windowsを終了します。その後、Windowsの再起動を行い、Edgeを起動すると、再起動前の複数ウィンドウを位置は戻さず、ひとつのディスプレイに表示します。
そのような状況で本アプリの「設定実行」を行った場合、Windowsの起動前のウィンドウと設定したウィンドウが混ざって表示されます。
理由としては、本アプリの「設定実行」処理中に、本アプリ以外の要因で、アプリのウィンドウ数が変わった場合、本アプリで起動したウィンドウかの判断がつかなくなるためです。
そのため、Edgeは、Windows再起動後に、Edgeを起動し、タスクバーでEdgeの「すべてのウィンドウを閉じる」を行い、本アプリの「設定実行」を行っていただく必要があります。
Edgeについて(Chromium版)(2020/06/26時点)
実行について
新しいEdgeは、Chromiumを基にしていることからか、Chromeと同様な動きになりました。実行コマンドもmsedge.exeに変更となり、ストアアプリ(UWPアプリ)でなくなりました。ウィンドウを別に表示する場合は、chromeと同様に実行コマンドに「 --new-window」を付けることにより、新しいウィンドウが表示されようになりました。また、新しいEdgeがインストールされると、以前のストアアプリ版Edgeが削除され、戻すことが出来ないようです。
そのような仕様で、新しいEdgeがインストールされ、xml設定ファイルにストアプリのEdgeを登録されていて、本アプリの「設定実行」を行うと、URL移動やウィンドウの位置調整が行えず、エラーとなってしまいます。
Edge対応をいろいろ行ってきましたが、本アプリで、上記の場合、実行コマンドの変更を行う対応は、今のところ考えておりません。
そのため、「設定実行」でエラーになる場合は、実行コマンドを、パスを含めたmsedge.exeに書き換え、ストア列をオフに登録し直して頂く必要があります。
更新履歴
Version 1.0.0.0 2019/08/28 初版リリース
Version 1.1.0.0 2019/09/02
多重起動の防止処理追加
xml設定ファイルの保存項目変更
コマンドライン実行の追加
「WindowPositionRestore.exe」のショートカットを作成し、リンク先に「プログラム配置ディレクトリ\WindowPositionRestore.exe xml設定ファイル」とすることにより、ウィンドウを表示せず、xml設定ファイルの実行処理を行います。
Version 1.1.1.0 2019/09/19 ウィンドウ画像表示の下記不具合修正
スリープからの復帰
ディスプレイ外の描画
Version 1.1.2.0 2019/10/18 ウィンドウ実行時のウィンドウ取得方法変更
タイトルが空の場合対象外とし、複数ウィンドウの場合ひとつだけになるまで待機処理追加
ウィンドウが特定できない場合エラーメッセージの表示を追加
Version 1.1.3.0 2019/12/13 表示モードの動作方式変更
ウィンドウ矩形がドラッグ出来ない場合の対処
ウィンドウ選択時のレスポンス改善
Version 1.1.4.0 2019/12/20 無視リスト機能追加
表示モードで、表示したくないウィンドウを無視リストとして設定する機能追加
Version 1.1.5.0 2020/01/23
「設定実行」の動作変更
「Window一覧」の「実行」列を、「実行順」列に変更し、実行順に従い、実行を行うように変更。
「Window一覧」の「幅」または「高さ」が0の場合で、「設定実行」を行った場合「実行コマンド」の実行は行うが、ウィンドウ位置・サイズ合わせは行わないこととした。
「実行コマンド」がEdgeの場合で、幅または高さが0の時、Windows10の実行方法で、そのまま実行するように変更。
Windows10の実行方法とは、Edgeウィンドウが無い場合は、新しいEdgeウィンドウを実行し、Edgeウィンドウがある場合は、新しいタブを追加する実行方法です。
「Window一覧」ウィンドウの変更
「ストア」列が"〇"の場合、青字で表示。
「幅」または「高さ」が0の場合、行の背景色を黄色で表示。
列の順序、列のソート情報を、本アプリ終了後に保存し、本アプリ起動時に復元するよう変更。
Version 1.1.6.0 2020/02/17 表示モードでの表示するウィンドウの調整
表示モードで、UWPアプリで休止状態のウィンドウを表示しないように修正。
初期無視リストを見直し。
Version 1.1.7.0 2020/03/06
仮想デスクトップ対応
表示モードは、現在表示している仮想デスクトップのウィンドウだけを対象とするように変更。
全ての仮想デスクトップで、「Window Position Restore」画面を表示するようにツールウィンドウに変更。
ツールウィンドウでは、アイコン表示がされないため、タスクトレイアプリに変更。
高DPI対応
高DPI(ディスプレイの設定が100%より大きい状態)のディスプレイでも、ディスプレイの表示はそのディスプレイの100%のサイズとしています。
Version 1.1.7.1 2020/03/13
不具合対応
シェルが停止し再起動された時、ウィンドウ矩形の描画処理が行われない問題の解消。
Windows8.1で、Window Position Restore起動時のウィンドウ幅、高さが復元されない問題の解消。
Version 1.1.8.0 2020/03/18
表示モードで、ディスプレイを付けたり、外したりした時、画面の表示が更新されるように変更。
Version 1.1.8.1 2020/03/24
表示モードでエラー発生時、エラーメッセージが出続ける問題の解消。
Version 1.1.8.2 2020/04/16
設定実行時、スプラッシュウィンドウ(起動時に表示されるロゴ等)を、ウィンドウとして認識しないように修正。
Version 1.1.8.3 2020/04/24
下記改善
表示モードでのアクティブウィンドウ画像の表示方法を変更し、画質を改善。
仮想デスクトップ切り替え時に、ハングアップすることがある問題の対応。
Version 1.1.8.4 2020/05/01
設定実行で、Edgeで引数にURLを指定し、新規ウィンドウを起動した時、URLが設定されるまで待機するように修正。
Version 1.1.9.0 2020/05/29
タスクトレイアプリとしての変更
起動時に、「ディスプレイ」ウィンドウと「Window一覧」ウィンドウを表示しないように変更し、「ディスプレイ」ウィンドウを閉じてもアプリケーションを終了しないように変更。
Window Position Restoreの終了は、タスクトレイのメニュー「終了」をクリックした時だけに変更。
タスクトレイのメニューに履歴表示と、履歴クリック時の即時実行追加
タスクトレイのメニューに、「設定実行」を行ったことがあるxml設定ファイルを、最大10ファイル分履歴表示が出来るように対応。 ※「設定保存」しただけでは、履歴として表示しません。
履歴は、ピン留めを可能とし、最大10ファイル分のピン留めが出来るように対応。
履歴表示、またはピン留め表示している設定実行xmlファイルをクリックすると、即座に設定実行を行うように対応。
Version 1.1.8.4対応によるエラーメッセージの表示をなくしました。
Version 1.1.9.1 2020/06/29
不具合対応
Windowsシャットダウン時に、履歴が保存されない問題の解消。
表示モードで、Windowsをスリープ後、復帰した時にハングアップする問題の解消(復帰時は設定モードになります)。
Version 1.2.0.0 2020/07/10
機能追加
xml設定ファイルを引数として本アプリを起動、または、タスクトレイの履歴から「設定実行」を行った場合、実行状況が解るように進捗ウィンドウを表示するように変更。
現在表示しているウィンドウ位置をメモリに保存し、その位置を復元できる機能の追加。
Version 1.2.1.0 2020/07/29
ウィンドウ配置復元機能変更
アイコン状態と、最大化状態のウィンドウを、その状態を維持して復元出来るように変更。
ロック時の自動保存と、手動保存の2つを別々にメモリに保存するように変更。
不具合対応
UWPアプリの初回起動が失敗することがある問題の対応。
Excel2016のスプラッシュウィンドウが配置対象ウィンドウとして認識される問題の対応。
「Window一覧」の「幅」または「高さ」が0の場合で、「設定実行」を行った場合の内部処理を変更し、起動速度を改善。
Version 1.2.2.0 2021/03/17
機能追加
「設定実行」時、仮想デスクトップが変わってしまうアプリを起動した場合、仮想デスクトップを元に戻し、ウィンドウも移動するように対応。
「設定実行」モードで、実行順を指定した場合、ウィンドウ矩形内に実行順を数値として表示するように対応。
前バージョンの設定情報が存在する場合、引き継ぐように対応。
Version 1.2.3.0 2021/05/19
下記対応
Windows10において、ウィンドウの見えない枠を除いた領域で、リストウィンドウの座標やディスプレイウィンドウの矩形を表示するように対応。
復元処理において、DPIが異なるディスプレイにまたがったウィンドウの復元は、移動やサイズ変更が正しく行われなかった為、処理対象外としました。
バージョン情報ダイアログが、不正な位置に表示される問題の改修。
Version 1.2.3.1 2022/03/14
不具合対応
Windows10において、設定実行時、幅、または高さを0にしても、ウィンドウ位置変更が行われる不具合の改修。
仮想デスクトップが正しく認識できない場合、プログラムが異常終了する問題の対応。
Version 1.3.0.0 2022/05/02
Windows11対応
表示モードでのアクティブウィンドウ画像の表示方法を、Desktop Duplicationから、Windows Graphics Captureに変更。Windows Graphics Captureは、Windows10(1803)から導入されたため、Windows8.1で本アプリは動かなくなりました。
仮想デスクトップAPIの変更に対応。
ウィンドウ配置復元において、表示している仮想デスクトップ以外のウィンドウ配置が行われないようになった。そのため、仮想デスクトップを変更し、ウィンドウ配置復元を行うように変更。
Version 1.3.1.0 2022/05/12
ウィンドウ配置復元機能変更
設定実行したウィンドウ状態を自動保存し、タスクトレイのメニュー「最後の設定実行の状態に、ウィンドウを復元」で復元出来るように機能追加。
Version 1.3.1.1 2022/05/25
不具合対応
表示モードでアクティブウィンドウ切り替え時、Windows Graphics Captureが応答しないことがあり、一定時間操作不可能になることがある。サブスレッドで監視し、応答しない場合は、ウィンドウ画像を表示しないこととし、操作が可能となるように修正。
Version 1.3.1.2 2022/10/21
Windows11(22H2)対応
仮想デスクトップAPIの変更に対応。
Version 1.3.1.3 2024/05/31
Windows11(23H2)対応
仮想デスクトップAPIの変更に対応。
32bit版をWindows11(23H2)で動かすと、仮想デスクトップAPIが正常に動きません。64bit版を使うようにしてください。
ウィンドウの表示が上手くいかないことがあるため、Windows Graphics Captureを、Desktop Duplicationに戻し。
Version 1.3.1.4 2024/09/13
下記対応
「無視リスト」ウィンドゥを直接編集出来るように変更。
64bit版で、起動エラーになることがある不具合解消。
ご意見、ご感想
ご意見、ご感想がございましたら、メール:
do_more51@yahoo.co.jp
宛でお願い致します。
前のページに戻る