これを想像してください...
- 外部モニターを接続します。
- 各モニターでいくつかのアプリを起動します。
- 外付けモニターを取り外します。
- すべてのアプリがプライマリモニターを移動するため、すべて良好です。
- 外部モニターを再接続します。
- アプリはプライマリモニターにとどまりますが、前に使用していた外部モニターに戻ると非常に便利です。
Windows 10を使用します。アプリを外部モニターに自動的に戻すためのソリューションまたは回避策はありますか?
これを想像してください...
Windows 10を使用します。アプリを外部モニターに自動的に戻すためのソリューションまたは回避策はありますか?
回答:
過去に、私はこれにWindowpadと呼ばれるAutohotkeyツールを使用しました。どうやら、これはWindowPadXと呼ばれる新しい拡張バージョンに置き換えられたようです。下にスクロールしてreadmeを確認します。完全なドキュメントはこちらです。
これは、複数のモニターで私にとって非常に重要でした。2つのウィンドウを簡単に切り替えることができるのが好きでした。
次のホットキーを設定できます(readmeから)。
ホットキーで設定可能なアクション
ウィンドウアクション
マルチモニター
WPXA_MoveWindowToMonitor:画面間でウィンドウを移動し、相対的な位置とサイズを維持します。
WPXA_MinimizeWindowsOnMonitor:指定された画面上のすべてのウィンドウを最小化します
WPXA_GatherWindowsOnMonitor:特定の画面でウィンドウを「収集」します。
WPXA_FillVirtualScreen:ウィンドウを展開して、仮想画面(すべてのモニター)を埋めます。
全般
WPXA_MaximizeToggle:ウィンドウを最大化または復元します。
WPXA_TopToggle:指定されたウィンドウの「AlwaysOnTop」をトグルします
WPXA_RollToggle:指定されたウィンドウの「ロール/アンロール」を切り替えます。WPXA_Move:「パッド」の概念に基づいてウィンドウを移動およびサイズ変更します。
WPXA_TileLast2Windows:アクティブで最後のウィンドウのタイル
マルチモニターマウスアクション
WPXA_MoveMouseToMonitor:マウスを特定のモニターの中央に移動します
WPXA_ClipCursorToCurrentMonitorToggle:クリッピングマウスを現在のモニターに切り替えます
WPXA_ClipCursorToMonitor:マウスを特定のモニターにクリップ(制限)します
一般的なマウス操作
WPXA_MouseLocator:マウスを簡単に見つける
あなたは「素晴らしいAutoHotkeyをライブラリ、ライブラリーのディストリビューション、スクリプト、ツールやリソースのAキュレーション一覧」の中でそれと他のツールを見つけることができるここに
最近ではapp(lication)と呼ばれるWindowsプログラムは、ウィンドウの位置をファイルまたはレジストリに保存できます。このデータの場所がわかっている場合は、メモ帳またはレジストリエディターで手動で編集できます。(レジストリエントリが正しくないと、Windowsが不安定になったり、エラーが発生する場合があります)
自動化された方法の作成は、コーディングスキルのある人にとっては簡単で、必要に応じて(つまり、モニターを再接続した後)開始することができます。これは、アクションスクリプト、.batファイル、またはネイティブアプリによって実行できます。
目的の位置を実装するには、問題のアプリケーションをこれより前に閉じる必要があります。
「オンライン」機能の別の可能性(アプリの再起動は不要)は、Windowsが別のプロセスのウィンドウへのアクセスを許可する場合です。アプローチには、SendMessageおよびWindowProc関数があります。
(これが親アプリケーションのスレッドにのみ適用されるのか、他のアプリケーションのスレッドでも実行できるのかどうかは、現時点ではわかりません...もちろん、Windowsのプログラミングに関する十分な知識が必要です)
指定されたメッセージを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
ウィンドウに送信されたメッセージを処理するアプリケーション定義の関数。[...]
私はUltraMonを使用します(オープンソースだと思います)。特定の状況では、正しく構成されていればこれを実行できます。
まず、UltraMonプログラムをインストールします。次に、実行中に、プラグインが1台しかない(番号は関係ありません)と言って、プロファイルを作成します。
次に、他のディスプレイを接続/切断します。この新しいセットアップ用のプロファイルを作成します。7台のモニターをプラグインするために「プロファイル7」と呼ぶこともできます。アイコンが希望どおりになったら、アイコンの位置を保存します。
このツールを使用すると、プロファイルを簡単に切り替えることができます。デスクトップショートカットを簡単に配置して、プロファイルをすばやく切り替えることができます。
最後に、高度なオプションでは、UltraMonにこれを常に自動的に行うように指示できますが、有料バージョン(1回限りの生涯料金)が必要になる場合があります。
2009年にUltraMonを19.99ドルで購入しましたが、それだけの価値がありました。
Win Redockは私にとって最もうまく機能しました。Redockは自動です-介入なしでウィンドウを保存および復元します。マジック!オープンソースも!
タスクバーのアイコンをShift +右クリックして[移動]を押すと、矢印キーを使用してウィンドウを移動し、Enterキーを使用して位置を設定できます。私は数年前に同じ問題を抱えていました。
別の解決策は、「すべてのウィンドウを現在のモニターに移動」ホットキーを使用して、DisplayFusionを使用してウィンドウを最も近いモニター(接続されている唯一のモニター)にスナップすることです。
あなたは私のような古い「キーボードの男」であればこれを行うことができます;-]私はこれを何年も前に理解しました。異なるUI。
オフスクリーン/境界線アプリで見つけた最も簡単な方法は次のとおりです。