이중 모니터 설정이 있고 최근에 위치 설정을 가지고 놀았으며 일부 단일 창 응용 프로그램은 마지막으로 닫힌 위치를 유지하고 나중에 같은 위치에서 여는 것을 선호합니다. 불행히도, 이제는 내 화면의 볼 수있는 영역에서 벗어날 수 있습니다!
특정 창을 볼 수있는 영역으로 강제 전환 할 수있는 방법이 있습니까?
이중 모니터 설정이 있고 최근에 위치 설정을 가지고 놀았으며 일부 단일 창 응용 프로그램은 마지막으로 닫힌 위치를 유지하고 나중에 같은 위치에서 여는 것을 선호합니다. 불행히도, 이제는 내 화면의 볼 수있는 영역에서 벗어날 수 있습니다!
특정 창을 볼 수있는 영역으로 강제 전환 할 수있는 방법이 있습니까?
답변:
나는이 접근법을 사용한다 :
영어 이외의 Windows 버전을 사용하는 경우 "R"및 "M"메뉴 선택 항목이 다를 수 있습니다.
작업 표시 줄에서 프로그램 단추를 마우스 오른쪽 단추로 클릭 한 다음 "이동"을 클릭하십시오. 이제 키보드의 화살표 버튼을 사용하여 창을 볼 수있는 곳으로 이동할 수 있습니다. 약간의 삐걱 거리는 소리가 필요합니다. 때로는 창문이 모니터 가장자리에 "고착"됩니다. 마우스를 사용해 볼 수도 있지만 창을 아직 볼 수 없다면 키보드가 약간 더 안정적입니다. ;-)
또 다른 빠른 방법은 작업 표시 줄을 r- 클릭하고 캐스케이드 Windows를 선택하는 것입니다.
편집 : 의견에 따라 중단
앞으로이 문제를 빠르게 해결하고 듀얼 스크린 위에 응용 프로그램을 배치하려면 Winsplit Revolution을 추천 할 수 있습니다 . Ctrl-Alt와 숫자 키패드 키를 누르기 만하면이 문제를 해결하여 원하는 위치에 창을 다시 배치 할 수 있습니다.
Shove-it 이라는 멋진 작은 도구를 사용합니다.이 도구 는 화면 가장자리 밖에 어떤 창이 있는지 확인하고 다시 화면에 다시 밀어 넣습니다. 그것은 고대 소프트웨어이며 홈페이지는 그것을 증명하지만 모든 Windows 버전에서 작동합니다.
Tk를 기반으로하는 Windows 7의 Git GUI 에서이 문제에 부딪 쳤으므로 Windows에서 때때로 이상한 방식으로 결함이 발생합니다. Alt-Space를 치고 이동 명령을 사용하여 다시보기로 다시 만들려고했지만 멈추는 것처럼 보였습니다. 그것을 최대화하면 다시 가져올 수 있지만 창 모드로 되 돌리면 다시 사라집니다.
내가 한 것은 최대화하고 제목 표시 줄을 잡고 화면의 측면으로 드래그하여 Aero Snap이 화면 크기의 절반으로 크기를 조정하여 창 모드로 설정하는 것입니다. 그 후 화면 측면에서 드래그하여 제어권을 다시 얻었습니다.
NIRSOFT WinLister를 사용할 수 있습니다. 클래식 테마를 사용하는 경우 Windows 7에서 "이동"방법을 사용할 수 없으며 다른 여러 가지 방법이 실패하여 "다른 모든 방법이 실패한 경우"대안을 게시하고 있습니다.
WinLister를 관리자로 실행하고 화면에서 다시 이동하려는 창을 선택하십시오. 관리자 권한으로 실행하지 않으면 응용 프로그램에서 창을 이동할 수있는 기능이 제공되지 않습니다.
마우스 오른쪽 버튼을 클릭하고 "Center Selected 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/
에서 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
실행시 화면 외부 창을 화면 위로 자동으로 이동시키는 Borderline 이라는 도구를 작성했습니다 . 필요할 때 실행해야합니다 (키보드 단축키를 지정하거나 시작 메뉴에 배치 할 때 가장 잘 작동 함). 그러나 항상 백그라운드에서 실행되고 있지는 않습니다.