オフスクリーンを開くウィンドウを移動するには?


272

デュアルモニターのセットアップがあり、最近、位置設定をいじくり回しました。私のシングルウィンドウアプリケーションのいくつかは、最後に閉じた場所を保持し、後で同じ位置で開くことを好みます。残念なことに、これにより、画面の表示可能領域の外に配置されます。

特定のウィンドウを表示可能領域に強制する方法はありますか?


2
これはまだWindows 10の問題です!私は3台のモニターを持っていますが、「あちこち」を1台しか使用していません。最終的にメインモニターに戻すには、Win +左矢印を押す必要があります。

1
それでも問題が7年後...
ジャックWasey

回答:


194

Windows 7以降のユーザーの場合:Windows Key+ Shift+ または、選択したウィンドウをその方向のモニターに移動します。


2
このおかげで、非標準ウィンドウを備えたアプリがあったので、Alt-Spaceテクニックは機能しませんでした(Windows上のFoxit Reader)。
-Bdoserror

3
また、ウィン+左/右/上も注目に値します。これは、アクティブモニターの半分を覆うウィンドウを配置する(両側に配置する)か、最大化します。これは私が見つけたすべての条件で機能するはずであり、非常に便利なキーでもあります(fn +矢印キー:Pを試そうとしてキーを押し続ける場合を除く)。
キャット

11
これは私のWindows 10 Pro x64では何もしません
Mike 'Pomax' Kamermans

3
@ Mike'Pomax'Kamermans:おかしい。これは、Windows 10 Pro x64ラップトップで、画面外に開くEmacsウィンドウを移動する唯一の方法です。
マイクシェリル 'キャットリコール'

2
うわー、私はこれについて知らなかったとは信じられない。8年後もまだこれが有用だと
思う人がいます

433

私はこのアプローチを使用します:

  • オフスクリーンアプリケーションに切り替えるには、Alt+ Tabを使用します。
  • Alt+ SPACEを押してシステムメニューを表示します(画面外にあるため表示されません)。
  • を押しRて[復元]メニューを選択し、ウィンドウが最大化されていないことを確認します(最大化されている場合は移動できません)
  • もう一度Alt+を押してSPACEM[移動]メニューを選択します。
  • 矢印キーのいずれかを押して、移動を開始します。
  • 次に、マウスを使用して、ウィンドウを目的の場所に配置します。

英語版以外のWindowsを使用している場合、「R」と「M」のメニュー選択はおそらく異なるでしょう。


8
解決策を提供してくれた「Terje Mikal」に感謝します。しかし、Windows 7が古き良きソリューションを削除してから問題が発生することを考えると(タスクバーの[アプリ]ボタンを右クリック)、さらに優れたソリューションがあります。 2010年10月10日08:50:«Windows 7では、Shiftキーを押しながらタスクバーボタンを右クリックする必要があります»
Michel Merlin

1
他のすべてのステップを試してみましたが、矢印キーで移動を開始することが最終的に、実際に実行しました...うわー。そして、私はこれでアプリケーションを再インストールしました!
フィリップ

1
私が扱っているアプリでは、復元はグレーアウトされていますが、Maximizeはそのフェーズで機能するため、移動は必要ありません。勝利のために最大化する!
ブライアンBulkowski

上記のようにしますが、次のコンボも有効です。Alt+ Tab、Alt + Space、M、Escキーを押します。これも機能するようです
Mz A

そのほぼ2020、まだこれを扱っています。
メルト

14

Windows 10の場合、カーソルキートリックでウィンドウを移動するにはShift、タスクバーからコンテキストメニューを開くときにキーを押す必要があります。

ここに画像の説明を入力してください

How To Geekからの情報


3
現在のWindows 10ビルドでは、タスクバーの上にマウスを置いて1秒間押し続けると、ウィンドウのサムネイルビューが表示されます。サムネイルを右クリックすると、シフトクリックのように「古い」コンテキストメニューが表示されます。
コーデラー

1
@Coderer:コメントは本当に役に立ちました。私はそれを知りませんでした。彼らはそれを完全に削除したと思った。
Oak_3260548

私はこれを完全に忘れました!タスクバーボタンが1つのウィンドウを表している場合は、Shiftキーを押しながら右クリックすることもできると思います。問題のアプリケーションに複数のウィンドウがある場合は、異なるコンテキストメニューが表示されます。
コーデラー

12

タスクバーのプログラムのボタンを右クリックして、「移動」をクリックします。キーボードの矢印ボタンを使用して、ウィンドウを表示できる場所に移動できます。いくつかのいじりが必要で、ウィンドウがモニターの端で「スタック」することがあります。マウスを使って試すこともできますが、まだウィンドウが表示されない場合はキーボードの方が少し信頼性があります;-)


2
キーボードについては知りませんでしたが、画面外にある場合はマウスを使用できません。すでに試しました。
マシューシャーリー

2
システム上でこれを妨げる非標準的なものがない限り、オフスクリーンであっても矢印キーを使用できるはずです。これは、この問題が発生している人々に対する私の標準的な対応でした。
music2myear

9
また、少なくとも1つの矢印キーを押すと、ウィンドウがマウスに「アタッチ」され、マウスで(クリックせずに)移動できます。このワンキーとマウスのアプローチは、通常、キーのみを使用するよりも高速です。
ダニエルリコウスキ

8
Windows 7では、タスクバーボタンをShiftキーを押しながら右クリックする必要があります。
kmote

これは私のために働いた唯一のソリューションです
...-sebagomez

8

タスクバーが表示される前に、この問題を修正Alt+Spaceしてウィンドウメニューを表示し、次にM移動機能を使用していました。矢印キーを使用すると、ウィンドウを画面上に戻すことができます。


画面に最大化された場合に移動しないという警告付きの+1。これは、ウィンドウが単に「制限を超えている」のではなく、ダミー画面にある場合に問題になる可能性があります。最大化は、占有されている画面の解像度全体をカバーするはずだったので、それらはOP用かもしれません。
mckenzm

8

別の高速な方法は、タスクバーを右クリックして、[カスケードウィンドウ]を選択することです。


4
これは、私の開いているすべてのウィンドウに影響するため、
ややい

1
確かに、しかし最速です。また、画面の外にあったウィンドウを閉じて、その後で元に戻すカスケードを使用して、ウィンドウの位置を復元できます。私はそれを試すことができないので、画面外にあったウィンドウの位置をその位置に復元するかどうかもわかりません(モニターは1つしかありません)。
T. Kaltnekar

5

私はこの問題に出くわしましたが、私には何の役にも立ちませんでした。そこで、タスクマネージャーに移動し、画面外にあるプログラムを右クリックしました。切り替えが機能せず、前面に表示されませんでした。注目すべきは、これは静的ウィンドウであったため、タスクバーから最大化を使用できないことです。ただし、タスクマネージャーを使用して最大化することができ、メインディスプレイに表示されます!そこから、ウィンドウで必要なことは何でもできます。:)


この答えをありがとう。タスクマネージャーで右クリックして最大化することが、私にとって唯一の機能でした。
コーダー

5

編集:コメントごとに廃止

将来この問題を迅速に解決し、アプリケーションをデュアルスクリーン上に配置するには、Winsplit Revolutionをお勧めします。この問題を解決するには、Ctrl-AltキーとNum-padキーを押して、ウィンドウを目的の場所に戻すだけです。


残念ながら、もはや無料ではありません
シャルベル14

ええ、それはよさそうですが、私はそうしない限り、支払いをしないという厳格な方針を持っています。LastpassまたはAcronis True Imageのように。また、私のスケジュールでは、問題が再び発生するまでに30日以上かかる可能性が非常に高いため、試用期間は機能しません。
–SDsolar

1
WinSplit革命は残念ながら中止されており、今後新しいアップデートはありませんMaxTo 『「に置き換え』、現在はUSD $ 19
TT--

1
WinSplit-Revolutionフリーウェアであり、検索すればダウンロードできます。最後のバージョンは、2011年にリリースされた11.04でした。Windows10で動作します。修正されたv9.02ソースは、WinSplit-ReloadedとしてGitHubで入手できます。それは素晴らしい製品です。
ベン

@Ben、リンクをありがとう。答えのリンクに行き、その情報を引用しました。(「WinSplit Revolutionは使用できなくなりましたが、優れた代替手段を提供しています。」)このGitHubフォークのreadmeは参考情報であり、特に「2009年に公開されたバージョン9.02」に言及しています。
TT-

3

私は、Shove-itと呼ばれる気の利いた小さなツールを使用します。これは、ウィンドウが画面の端の外側にあるかどうかを確認し、再び画面に押し戻します。これは古代のソフトウェアです(そしてホームページで証明されています)が、すべてのWindowsバージョンで動作します。


リンクは現在無効です:-(
ダニオ

:-(は、他の一方で、このソリューションは、自分自身をより長生きしている可能性があり、それは今までにまだ起こるん、私は最後にこれの必要性を持っていたので、それは何年もされています。?。
トーベンGundtofte-ブルーン


インストーラーがロックされます(Windows 7の場合)。
mhenry1384

@よくmhenry1384 され、私たちは本当にそれが新しいと連携する14歳(32ビット)を期待することはできませんバージョンを.....(64ビット?)
トーベンGundtofte-ブルーン

3

Tkに基づいているWindows 7のGit GUIでこの問題が発生したため、Windowsで時々奇妙な方法でグリッチが発生する傾向があります。Alt-Spaceを押して、moveコマンドを使用して、元の位置に戻してみましたが、動かなくなったようです。最大化すると元に戻りますが、ウィンドウモードに戻すと再び消えます。

私がやったのは、それを最大化し、タイトルバーをつかみ、画面の横にドラッグして、Aero Snapが画面サイズの半分にサイズ変更してウィンドウモードにしたことです。その後、私はそれを画面の横からドラッグして、コントロールを取り戻しました。


非常に多くの答えがより高く支持されましたが、私のために働くものは一つもありませんでした。これでした。
ダンニッセンバウム

Git GUIもここに来ましたが、Shiftキーを押しながら右クリック(タスクバーアイコン上)、移動、矢印キー、マウス(ウィンドウを配置する)の組み合わせで解決しました。尊大/ブラッド・パットンのソリューションは機能します。
mcalex

1

winampでも同じ問題がありました。私がこれまでに見つけた唯一の(不満足な)解決策:画面解像度を別の解像度に変更して戻す

トーマス


1

NIRSOFT WinListerを使用できます。クラシックテーマを使用している場合、Windows 7では「移動」メソッドが使用できないことに気づき、他のさまざまなメソッドが失敗したため、「IF all else failed」代替を投稿しています。

  1. ここからWinListerアプリケーションをダウンロードします

  2. WinListerを管理者として実行し、画面に戻るウィンドウを選択します。管理者として実行しないと、アプリケーションにウィンドウを移動する機能が与えられません。

  3. 右クリックして「選択したウィンドウの中央」を選択すると完了です!

スクリーンショットはこちら


1
すばらしいヒント-これは、Alt-Spaceが所有しているウィンドウのエクスプローラーウィンドウのメニューを開いただけで、画面外のサブウィンドウではなく、MS TFSのパワーツールで機能した唯一のソリューションです。
ダニオ

1

場合によっては、遠隔地に複数の画面があるにもかかわらず、自分の場所から画面にアクセスできないことがあります。画面上にないビューからロックアウトされているため、キーコマンドは機能しません。

この場合、アプリケーションの追加インスタンスを開くことができる場合は、開いてください。最初のいくつかのインスタンスは、ほぼ確実にタスクバーにさらに幻想的なウィンドウとして表示されます。これを続けてください。最終的に、それらはプライマリビューに入力し始めます。次に、タスクバーアイコンを使用して、画面外のインスタンスを右クリックして閉じます。オフスクリーンインスタンスが開いていない場合は、プライマリスクリーンのインスタンスを閉じます。次回そのアプリケーションを開くと、「カメラ外」ではなく、プライマリ画面に表示されます。


1
「リモートロケーション」、「あなたのロケーション」などとは何ですか?ユーザーが「画面上にないビューからロックアウトされる」のはなぜですか?
スコット

彼はVM、Citrix、RDPなどを意味します。携帯電話でマルチ4Kを読むことはないでしょう。ダミー画面の場合も同様です。一部の企業ユーザーは、HDMIドングルを取り付けて、必須のデスクトップアイテムを見えない場所に置いています。1つの実際の画面に戻ると、元に戻ります。
mckenzm

1

ウィンドウを選択します(例:Alt+ を使用Tab)。次に、Alt+ F7を押したまま、矢印キーでウィンドウを表示に戻します。できた

隠されたウィンドウがどこにあるかを盲目的に知るのが難しい場合があります(したがって、画面に向かって移動する方法)。ウィンドウの選択中のアニメーションが役立つ場合があります。私の設定により(ラップトップ画面の上部にセカンドスクリーンを使用することがあります)、画面外に表示されるウィンドウは通常下にあります。したがって、Alt+ F7+を保持Upすると、それらが表示されます。


1

PowerShellを使い慣れている方は、これを試してください。

  • 以下のコードをコピーして、PowerShell ISEセッションに貼り付けます。
  • ヒットラン
  • Altキーを押しながらTabキーを押して、オフスクリーンウィンドウをアクティブにします
  • しばらく待ちます(スクリプトでRUNを押してから5秒)
  • ウィンドウが表示されます。

ウィンドウがメインウィンドウの場合、画面の左上隅に移動します。

ウィンドウが別のプログラムの子ウィンドウである場合、その左上隅はその親ウィンドウの左上隅に揃えられます。

Add-Type @"
    using System;
    using System.Runtime.InteropServices;

    // https://msdn.microsoft.com/en-us/library/windows/desktop/dd162897(v=vs.85).aspx
    public struct RECT 
    {
        public long left;
        public long top;
        public long right;
        public long bottom;
    }

    public class User32WinApi 
    {

        // https://msdn.microsoft.com/en-us/library/windows/desktop/ms633505(v=vs.85).aspx
        /*
            Gets the handle of the in-focus window
            NB: In some scenarios this can be NULL; so code needed to handle such an event
        */
        [DllImport("user32.dll")]
        public static extern IntPtr GetForegroundWindow();

        // https://msdn.microsoft.com/en-us/library/windows/desktop/ms633503(v=vs.85).aspx
        /*
            top & left are always 0 (i.e. since the rectangle is relative to the window itself)
            bottom & right equal the windows hieght and width, respectively.
        */
        [DllImport("user32.dll")]
        [return: MarshalAs(UnmanagedType.Bool)]
        public static extern bool GetClientRect(IntPtr hWnd, out RECT lpRect);

        // https://msdn.microsoft.com/en-us/library/windows/desktop/ms633534(v=vs.85).aspx
        [DllImport("user32.dll")]
        [return: MarshalAs(UnmanagedType.Bool)]
        public static extern bool MoveWindow(IntPtr hWnd, int X, int Y, int nWidth, int nHeight, bool bRepaint);

    }

"@
$repaint = $true 
$windowSize = New-Object RECT

"Quick; get the window you're after in focus; you have 5 seconds..."
Start-Sleep -Seconds 5 #allow 5 seconds for the user to get the window they're after in focus (e.g. using ALT+TAB / whatever)
$activeWindow = [User32WinApi]::GetForegroundWindow()
if ($activeWindow) {
    if([User32WinApi]::GetClientRect($activeWindow, [ref]$windowSize)) {
        if ([User32WinApi]::MoveWindow($activeWindow, 0, 0, $windowSize.right, $windowSize.bottom, $repaint)) {
            "Window moved successfully (hope you agree!)"
        } else {
            Write-Warning "Failed to move the active window"
        }
    } else {
        Write-Warning "Failed to get size of the active window"    
    }
} else {
    Write-Warning "No active window found"    
}

元のコードはこちら:https : //gist.githubusercontent.com/JohnLBevan/1593bbb860c2d2af436a1c9414e8adfa/


0

タスクバーにカーソルを置きます。右クリックしてウィンドウを並べて表示を選択します。ウィンドウを画面に表示します。



0

以下からのWindowsのショートカットとトップ/ボトムモニタにウィンドウを移動することによりTymric

AHKスクリプトを作成しました。

使用法:

Win+ Alt+ Arrow:矢印で方向が示されているモニターにアクティブなウィンドウを移動します。セットアップでモニター2から、またはモニター3から直接上に行こうとすると、ウィンドウが画面の外側に移動する可能性があることに注意してください。今後更新します。

Win+ Alt+ Number:アクティブなウィンドウを指定されたモニター番号に移動します

#Persistent

SysGet, MonitorCount, MonitorCount


#!Up::
  GoSub CalculateDisplacement
  WinMove, A, , %xPos%, %displaceYneg%
  return
#!Down::
  GoSub CalculateDisplacement
  WinMove, A, , %xPos%, %displaceYpos%
  return
#!Left::
  GoSub CalculateDisplacement
  WinMove, A, , %displaceXneg%, %yPos%
  return
#!Right::
  GoSub CalculateDisplacement
  WinMove, A, , %displaceXpos%, %yPos%
  return

#!1::
  GoSub CalculateDisplacement
  WinMove, A, , %xPosOn1%, %yPosOn1%
  return

#!2::
  if (MonitorCount > 1) {
    GoSub CalculateDisplacement
    WinMove, A, , %xPosOn2%, %yPosOn2%
  }
  return

#!3::
  if (MonitorCount > 2) {
    GoSub CalculateDisplacement
    WinMove, A, , %xPosOn3%, %yPosOn3%
  }
  return

#!4::
  if (MonitorCount > 3) {
    GoSub CalculateDisplacement
    WinMove, A, , %xPosOn4%, %yPosOn4%
  }
  return

#!5::
  if (MonitorCount > 4) {
    GoSub CalculateDisplacement
    WinMove, A, , %xPosOn5%, %yPosOn5%
  }
  return

#!6::
  if (MonitorCount > 5) {
    GoSub CalculateDisplacement
    WinMove, A, , %xPosOn6%, %yPosOn6%
  }
  return

#!7::
  if (MonitorCount > 6) {
    GoSub CalculateDisplacement
    WinMove, A, , %xPosOn7%, %yPosOn7%
  }
  return

#!8::
  if (MonitorCount > 7) {
    GoSub CalculateDisplacement
    WinMove, A, , %xPosOn8%, %yPosOn8%
  }
  return

#!9::
  if (MonitorCount > 8) {
    GoSub CalculateDisplacement
    WinMove, A, , %xPosOn9%, %yPosOn9%
  }
  return


CalculateDisplacement:
  WinGetPos, xPos, yPos, , , A
  Loop, %MonitorCount% {
    SysGet, MonitorDimension, Monitor, %A_Index%
    if (xPos > MonitorDimensionLeft and xPos < MonitorDimensionRight and yPos < MonitorDimensionBottom and yPos > MonitorDimensionTop) {
      currentMonitor = %A_Index%
    }
  }
  SysGet, thisMonitor, Monitor, %currentMonitor%
  displaceXpos := xPos + thisMonitorRight - thisMonitorLeft
  displaceYpos := yPos + thisMonitorTop - thisMonitorBottom
  displaceXneg := xPos - thisMonitorRight + thisMonitorLeft
  displaceYneg := yPos - thisMonitorTop + thisMonitorBottom
  Loop, %MonitorCount% {
    SysGet, nextMonitor, Monitor, %A_Index%
    xPosOn%A_Index% := xPos - thisMonitorLeft + nextMonitorLeft
    yPosOn%A_Index% := yPos - thisMonitorTop + nextMonitorTop
  }
  return

0

実行時に画面外のウィンドウを画面上に自動的に戻すBorderlineというツールを作成しました。必要なときに実行する必要があります(キーボードショートカットを割り当てるか、[スタート]メニューに配置すると最適に機能します)が、それは常にバックグラウンドで実行されないことも意味します。


0

時々、これは解決しました:

  • [ WinKey+]をクリックしますP
  • Extendまたは別のオプションを選択すると、すべてのウィンドウがカスケード表示されます。目的のウィンドウをプライマリ画面に移動します。

-1

オフスクリーンを開くウィンドウを移動するには?

一時的に画面の解像度を下げ、マウスでトップバーをつかみ、中央を動かします。システムが自動的に解像度を復元するまで待ちます。

  1. デスクトップ->画面解像度
  2. モニターを選択し、現在の設定からより低い解像度に変更します。
  3. システムは新しい解像度を表示し、30秒後に保持するか元に戻すかを尋ねます。
  4. 30秒以内に、見当たらないウィンドウをつかみ、中央に移動します。
  5. タイムアウトが自動的に元に戻るまで待ちます。

ウィンドウを移動しました...

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.