私は二重のモニターセットアップをしていて、そして最近私はポジショニング設定で遊んだ、そして私のシングルウィンドウアプリケーションのいくつかはそれらが最後に閉じられた場所を保存し、後で同じ位置で開くことを好む。残念なことに、それは今私の画面の表示領域からそれらを配置します!
特定のウィンドウを表示領域に押し込む方法はありますか?
私はこのアプローチを使います:
英語以外のバージョンのWindowsを使用している場合は、 "R"と "M"のメニュー選択はおそらく異なるでしょう。
タスクバーのプログラムのボタンを右クリックしてから、[移動]をクリックします。キーボードの矢印ボタンを使って、ウィンドウを見える位置に移動させることができます。少し手間がかかりますが、ウィンドウがモニタの端に「動かなくなる」ことがあります。マウスを使ってみることもできますが、ウィンドウが表示されない場合はキーボードの方が信頼性が高くなります。
タスクバーがある前に、私はでこの問題を解決するために使用していました Alt+Space ウィンドウメニューを表示する M 移動機能用です。矢印キーを使用すると、ウィンドウを画面上に戻すことができます。
もう1つの簡単な方法は、タスクバーを右クリックしてCascade Windowsを選択することです。
編集:コメントに従って廃止
将来この問題を素早く解決し、デュアルスクリーンにアプリケーションを配置するには、 Winsplit Revolution をお勧めします。この問題を解決するには、Ctrl-Altとnum-padキーを押してウィンドウを元の位置に戻す必要があります。
私はこの問題に遭遇しました、そして、私のために全く何も働いていませんでした。それで私はタスクマネージャに入り、スクリーンから外れたプログラムを右クリックしました。動作しなかったに切り替えても前面に持って来なかった。注意するために、これは静的ウィンドウだったので、最大化はタスクバーから利用できませんでした。しかし、あなたはタスクマネージャを介して最大化することができ、それはあなたのメインディスプレイにそれをもたらします!そこからあなたはウィンドウであなたがする必要がある何でもすることができます。 :)
私はTkをベースにしているのでWindows 7上のGit GUIでこの問題に遭遇したばかりなので、Windows上では時々奇妙な方法で失敗する傾向があります。私はAlt-Spaceを押して移動コマンドを使用してそれをシミ表示に戻してみましたが、動かなくなったようです。最大化すると元に戻りますが、ウィンドウモードに戻すと再び消えます。
最大化し、タイトルバーをつかみ、画面の横にドラッグして、Aero Snapが画面の半分のサイズになるようにしてウィンドウモードにしました。その後、私はそれをスクリーンの横から引き離して、そしてそれのコントロールを取り戻しました。
私は Shove-it という気の利いた小さなツールを使います。それは古代のソフトウェアです(そしてホームページはそれを証明しています)が、すべてのWindowsバージョンで動作します。
PowerShellに慣れている人は、これを試してください。
ウィンドウがメインウィンドウの場合は、画面の左上隅に移動します。
ウィンドウが別のプログラムの子ウィンドウである場合、その左上隅はその親ウィンドウの左上隅と揃えられます。
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/
あなたはNIRSOFT WinListerを使うことができます。 Windows 7では、クラシックテーマを使用しているときには "Move"メソッドは使用できないことに気付きました。他のさまざまなメソッドは失敗したので、私は "IF all else failed"という選択肢を掲載します。
WinListerアプリケーション をここからダウンロードしてください 。
管理者としてWinListerを実行して、Screenに戻りたいウィンドウを選択します。管理者として実行していないと、アプリケーションにウィンドウを移動する機能が与えられません。
右クリックして[選択したウィンドウを中央揃え]を選択すると完了です。
スクリーンショット はこちら 。
場合によっては、離れた場所に複数の画面があるにもかかわらず、あなたの場所からそれらにアクセスできない場合があります。画面に表示されていないビューはロックされているため、キーコマンドは機能しません。
この場合、アプリケーションの追加のインスタンスを開くことができれば、それを開きます。最初のいくつかのインスタンスは、タスクバーにまだもっと仮想のウィンドウとして表示されます。これをやり続けなさい。やがて、彼らは主観的な見方をし始めます。次に、タスクバーのアイコンを使用して、画面外のインスタンスを右クリックして閉じます。開いている画面外インスタンスがなくなったら、主画面のインスタンスを閉じます。次回そのアプリケーションを開くと、そのアプリケーションはメイン画面に表示され、「オフカメラ」には表示されません。
ウィンドウを選択します(例: Alt+Tab)それから Alt+F7 矢印キーでウィンドウを元の位置に戻します。完了しました。
隠されたウィンドウがどこにあるのか(そしてそれをスクリーンに向かってどのように動かすのか)盲目的に知るのが難しいことがあります。ウィンドウ選択中のアニメーションは役に立つかもしれません。私の設定(私は時々私のラップトップスクリーンの上に2番目のスクリーンを使う)のために、スクリーンの外に現れるウィンドウは通常下にあります。ホールディング Alt+F7+Up したがってそれらを視野に入れます。
私はwinampと同じ問題を抱えていました。私がこれまでに見つけた唯一の(不満足な)解決策:スクリーン解像度を違う解像度に変更して元に戻す
トーマス
UltraMon (non-free、Windows、GUI)を使用して、ウィンドウを次のモニターまたは前のモニターに移動するためのキーボードショートカットを設定することもできます。
From Windowsの場合はショートカットでウィンドウを下/上のモニターに移動 by 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
タスクバーの上にカーソルを置きます。ウィンドウを左右に並べて選択します。ウィンドウが画面に表示されます。最後にタスクバーの上にカーソルを置きます。
時々、これは解決しました:
Extend
または他のオプションを選択すると、すべてのウィンドウがカスケードされます。目的のウィンドウをプライマリ画面に移動します。実行時に自動的に画面外のウィンドウを画面上に戻す Borderline というツールを作成しました。必要なときに実行する必要があります(キーボードショートカットを割り当てたり、スタートメニューに配置したりすると最も効果的です)が、バックグラウンドで実行されているとは限りません。