web-dev-qa-db-ja.com

外部モニターを再接続したときにウィンドウを元の画面に戻すにはどうすればよいですか?

これを想像してみてください...

  1. 外付けモニターを接続します。
  2. 各モニターでいくつかのアプリを起動します。
  3. 外付けモニターを取り外します。
    • すべてのアプリがプライマリモニターを移動するので、すべて良好です。
  4. 外付けモニターを再接続します。
    • アプリはプライマリモニターに残りますが、以前使用していた外部モニターに戻った場合は非常に便利です。

Windows 10を使用しています。アプリを外部モニターに自動的に戻すための解決策または回避策はありますか?

21
joelsand

Win Redock が私にとって最も効果的でした。 Redockは自動的に行われます-介入なしでウィンドウを保存および復元します。マジック!そのオープンソースも!

2
B T

これまでに、Windowpadと呼ばれるAutohotkeyツールを使用しました。どうやらこれは WindowPadX と呼ばれる新しい拡張バージョンに置き換えられたようです。下にスクロールして、Readmeを表示します。完全なドキュメントは here です。

これは、複数のモニターで私にとって非常に重要でした。 2つのウィンドウを簡単に切り替えられるようになりました。

次のホットキーを設定できます(readmeから):

ホットキーに設定できる可能なアクション

ウィンドウアクション

マルチモニター

WPXA_MoveWindowToMonitor:画面間でウィンドウを移動し、相対的な位置とサイズを維持します。

WPXA_MinimizeWindowsOnMonitor:指定された画面のすべてのウィンドウを最小化します

WPXA_GatherWindowsOnMonitor:特定の画面上の「収集」ウィンドウ。

WPXA_FillVirtualScreen:ウィンドウを拡張して、仮想画面(すべてのモニター)を埋めます。

一般的な

WPXA_MaximizeToggle:ウィンドウを最大化または復元します。

WPXA_TopToggle:指定されたウィンドウの「常にOnTop」を切り替えます

WPXA_RollToggle:特定のウィンドウの「ロール/アンロール」を切り替えますWPXA_Move:「パッド」の概念に基づいてウィンドウを移動およびサイズ変更します。

WPXA_TileLast2Windows:アクティブで最後のウィンドウを並べて表示

マルチモニターマウスアクション

WPXA_MoveMouseToMonitor:マウスを指定されたモニターの中央に移動します

WPXA_ClipCursorToCurrentMonitorToggle:Tooglesクリッピングマウスを現在のモニターに

WPXA_ClipCursorToMonitor:指定されたモニターにマウスをクリップ(制限)します

一般的なマウス操作

WPXA_MouseLocator:マウスを簡単に見つける

「素晴らしいAutoHotkeyライブラリ、ライブラリの配布、スクリプト、ツール、リソースの厳選されたリスト」 here の中から、それと他のツールを見つけることができます。

1
ludinom

一部のGPUは、Nvidiaコントロールパネルなどのこの機能をサポートしており、この設定やその他の多くの機能の設定を適用できます。

または、複数のディスプレイ設定を設定して、すべてのモニターで(拡張ではなく)デスクトップをミラーリングすることもできます。

0
CymaTechs

最近のapp(lication)と呼ばれるWindowsプログラムは、ウィンドウの位置をファイルまたはレジストリに保存できます。このデータの場所がわかっている場合は、メモ帳またはレジストリエディターで手動で編集できます。 (レジストリエントリが正しくないと、Windowsが不安定になったりエラーが発生する可能性があります)

自動化された方法の作成は、コーディングスキルが少しでも簡単で、必要に応じて(つまり、モニターを再接続した後で)開始できます。これは、アクションスクリプト、.batファイル、またはネイティブアプリによって実行できます。

問題のアプリケーションは、目的のポジションを実装するために、これより前に閉じる必要があります。

「オンライン」機能のもう1つの可能性(アプリの再起動は不要)は、Windowsが1つのプロセスのウィンドウに別のウィンドウにアクセスできる場合です。アプローチとしては、SendMessage関数とWindowProc関数があります。

(これが親アプリケーションのスレッドにのみ適用されるのか、それとも他のアプリケーションのスレッドによっても実行できるのか...そしてもちろん、プログラミングに関する十分な知識が必要です...ウィンドウズ)

https://msdn.Microsoft.com/en-us/library/windows/desktop/ms644950%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396

指定されたメッセージを1つまたは複数のウィンドウに送信します。 [...]指定されたウィンドウが呼び出しスレッドによって作成された場合、ウィンドウプロシージャはサブルーチンとしてすぐに呼び出されます。指定されたウィンドウが別のスレッドによって作成された場合、システムはそのスレッドに切り替えて、適切なウィンドウプロシージャを呼び出します。

WM_Moveメッセージ https://docs.Microsoft.com/en-us/windows/desktop/winmsg/wm-move

ウィンドウが移動された後に送信されます。

ウィンドウは、WindowProc関数を介してこのメ​​ッセージを受け取ります。

https://msdn.Microsoft.com/en-us/library/ms633573%28v=VS.85%29.aspx?f=255&MSPPError=-2147217396

ウィンドウに送信されたメッセージを処理するアプリケーション定義の関数。 [...]

0
DigitalBlade969

私はUltraMon(私はそれがオープンソースであると信じています)を使用しており、特定の状況では、正しく構成されていれば、これを実行できます。

まず、プログラム ltraMon をインストールします。次に、それが実行されているときに、現在接続されているモニターは1つだけである(数は関係ありません)と言い、プロファイルを作成します。

  • システムトレイのアイコンを右クリックします
  • 左クリックディスプレイプロファイル
  • 新しいディスプレイプロファイルを左クリックして名前を付けます(たとえば、私が行うことは、プロファイル1のように、使用しているモニターの数を反映する番号を付けます)。
  • 今、あなたはそれを持っています。クール、各モニター、スクリーンセーバーなどの壁紙を作成できます。すべてのアイコンを好きな方法で入手できます。
  • Systrayアイコンを右クリックします。
  • デスクトップアイコンを左クリックして位置を保存

他のディスプレイを接続/切断します。この新しいセットアップのプロファイルを作成します。 7つのモニターが接続されている場合は、「プロファイル7」と呼んでください。アイコンの位置を希望どおりに保存します。

このツールを使用すると、プロファイルを簡単に切り替えることができます。デスクトップショートカットを簡単に配置して、プロファイルをすばやく切り替えることができます。

最後に、詳細オプションでは、これを常に自動的に行うようにUltraMonに指示できますが、有料バージョン(1回限りの生涯料金)が必要になる場合があります。

2009年にUltraMonを19.99ドルで購入しましたが、それだけの価値はありました。

0
PyTis

これを行うための解決策はありません。画面間を移動するには、キーボードの左右の矢印が付いたWindowsキーを使用するか、画面の一部に移動するには、Windowsキー+ Shift +左/右を使用する必要があります。

Windowsキー+ Pは、ミラーリング/拡張などを支援するマルチモニター状況でも役立ちます。

ただし、画面を切断すると、それらのウィンドウにメタデータが含まれていると、その後それらは消えます。

0
Pixel