Как переместить окна, открывающиеся за кадром?

У меня есть настройка с двумя мониторами, и я недавно играл с настройками позиционирования, и некоторые из моих приложений с одним окном делали одолжение, сохраняя место, где они были в последний раз закрыты, и открываются в том же положении позже. К сожалению, теперь они вытесняют их из видимой области моих экранов!

Есть ли способ заставить конкретное окно в области видимости?

244 голоса | спросил Matthew Scharley 10 +04002009-10-10T12:41:54+04:00312009bEurope/MoscowSat, 10 Oct 2009 12:41:54 +0400 2009, 12:41:54

20 ответов


168

Для пользователей Windows 7 и более поздних версий:  Windows Key + Shift + â † или â † ' переместит выбранное окно на монитор в этом направлении.

ответил andho 15 +04002009-10-15T18:57:50+04:00312009bEurope/MoscowThu, 15 Oct 2009 18:57:50 +0400 2009, 18:57:50
388

Я использую этот подход:

  • Используйте вкладку Alt , чтобы переключиться на внеэкранное приложение.
  • Нажмите Alt SPACE , чтобы открыть системное меню (вы не увидите его, потому что оно выключено)
  • Нажмите R , чтобы выбрать пункт меню «Восстановить», чтобы убедиться, что окна не увеличены (вы не можете переместить его, если он максимален).
  • Нажмите Alt SPACE , затем M , чтобы выбрать пункт меню «Переместить».
  • Нажмите одну из клавиш со стрелками, чтобы начать движение.
  • Теперь просто используйте мышь, чтобы поместить нужное окно.

Если вы используете неанглийскую версию Windows, варианты меню «R» и «M», вероятно, будут разными.

ответил Terje Mikal 10 +04002009-10-10T12:53:20+04:00312009bEurope/MoscowSat, 10 Oct 2009 12:53:20 +0400 2009, 12:53:20
12

Вы можете щелкнуть правой кнопкой мыши по кнопке программы на панели задач и нажать «Переместить». Теперь вы можете использовать кнопки со стрелками на клавиатуре, чтобы переместить окно, где вы можете его увидеть. Требуется некоторое вождение, иногда окна «застревают» на краях мониторов. Вы также можете попробовать использовать мышь, но клавиатура немного более надежна, если вы еще не видите окно; -)

ответил Emthigious 10 +04002009-10-10T12:50:28+04:00312009bEurope/MoscowSat, 10 Oct 2009 12:50:28 +0400 2009, 12:50:28
12

Для Windows 10, чтобы использовать старый переход, окно с трюком клавиш курсора необходимо, чтобы клавиша Shift нажата, когда вы открываете контекстное меню на панели задач.

 введите описание изображения здесь>> </a> </p>

<p> Информация из <a href = Как выродка

ответил Brad Patton 25 32015vEurope/Moscow11bEurope/MoscowWed, 25 Nov 2015 00:09:19 +0300 2015, 00:09:19
8

Еще один быстрый способ - r-щелчок на панели задач и выбор Cascade Windows.

ответил T. Kaltnekar 10 +04002009-10-10T13:20:36+04:00312009bEurope/MoscowSat, 10 Oct 2009 13:20:36 +0400 2009, 13:20:36
7

Перед тем, как появилась панель задач, я использовал эту проблему с помощью Alt + Space , чтобы открыть меню окна, а затем M для функции Move. Затем клавиши со стрелками позволят вам переместить окно на экран.

ответил Greg Hewgill 10 +04002009-10-10T12:52:48+04:00312009bEurope/MoscowSat, 10 Oct 2009 12:52:48 +0400 2009, 12:52:48
5

Чтобы быстро решить эту проблему в будущем и разместить приложения на двойном экране, я могу порекомендовать Winsplit революция . Это уменьшает решение этой проблемы, просто нажав Ctrl-Alt и клавишу num-pad, чтобы вернуть окно туда, где вы хотите.

ответил Andy 10 +04002009-10-10T12:57:46+04:00312009bEurope/MoscowSat, 10 Oct 2009 12:57:46 +0400 2009, 12:57:46
4

Я столкнулся с этой проблемой, и абсолютно ничего не сработало для меня. Поэтому я зашел в диспетчер задач и нажал правой кнопкой мыши на программу, которая была выключена. Переключиться на работу не удалось, и она не выходила на передний план. Следует отметить, что это было статическое окно, поэтому максимизация была недоступна через панель задач. Но вы можете максимизировать работу с помощью диспетчера задач, и это приведет его к вашему главному дисплею! Оттуда вы можете делать все, что нужно, с окном. :)

ответил Leo 9 Jam1000000amFri, 09 Jan 2015 03:23:52 +030015 2015, 03:23:52
3

Я использую отличный инструмент под названием Shove-it , который просто проверяет, есть ли какое-либо окно за пределами края экрана и снова выталкивает его обратно на экран. Это старое программное обеспечение (и эта страница доказывает это), но работает во всех версиях Windows.

ответил Torben Gundtofte-Bruun 10 +04002009-10-10T17:37:33+04:00312009bEurope/MoscowSat, 10 Oct 2009 17:37:33 +0400 2009, 17:37:33
3

Я просто столкнулся с этой проблемой с Git GUI в Windows 7, который основан на Tk, и как таковой имеет тенденцию иногда появляться странно в Windows. Я попробовал нажать Alt-Space и использовать команду move, чтобы отобразить ее обратно, но она казалась застревающей. Максимизация этого вернет его, но если я верну его обратно в оконный режим, он снова исчезнет.

То, что я сделал, это максимизировать его, захватить строку заголовка и перетащить его в сторону экрана, чтобы Aero Snap оценил его на половину размера экрана и поместил его в оконный режим. После этого я вытащил его со стороны экрана и восстановил контроль над ним.

ответил unused 22 PMpFri, 22 Apr 2011 22:57:29 +040057Friday 2011, 22:57:29
1

У меня была такая же проблема с winamp. Единственное (неудовлетворительное) решение, которое я нашел до сих пор: измените разрешение экрана на другое и обратно

Томас

ответил Thomas 28 Maypm10 2010, 20:27:46
1

Вы можете использовать NIRSOFT WinLister. Я заметил, что метод «Move» не доступен в Windows 7, когда вы используете классическую тему, а другие другие методы потерпели неудачу, поэтому я не могу опубликовать мою «альтернативную альтернативу».

  1. Загрузите приложение WinLister здесь .

  2. Запустите WinLister в качестве администратора и выберите окно, которое вы хотите переместить на экран. Не работает как администратор, не даст приложению возможность переместить окна для вас.

  3. Щелкните правой кнопкой мыши и выберите «Выбрать выбранные Windows», и вы сделаете это!

Скриншоты здесь .

ответил user199343 15 FebruaryEurope/MoscowbFri, 15 Feb 2013 01:37:39 +0400000000amFri, 15 Feb 2013 01:37:39 +040013 2013, 01:37:39
1

В некоторых случаях, несмотря на наличие нескольких экранов в удаленном месте, у вас может не быть доступа к ним из вашего местоположения. Команды клавиш не будут работать, потому что вы заблокированы из любого представления, которое не находится на вашем экране.

В этом случае, если вы можете открыть дополнительные экземпляры приложения, сделайте это. Первые несколько экземпляров почти наверняка появятся в панели задач как еще более фантомные окна. Продолжайте делать это. В конце концов, они начнут заполнять основной вид. Затем используйте значок панели задач правой кнопкой мыши и закройте экземпляры вне экрана. После того, как открытые экземпляры NO открыты, закройте их на основном экране. В следующий раз, когда вы откроете это приложение, оно появится на основном экране, а не «выключено».

ответил Greg Mayer 22 +03002016-10-22T01:25:05+03:00312016bEurope/MoscowSat, 22 Oct 2016 01:25:05 +0300 2016, 01:25:05
1

Выберите окно (например, используя Alt + вкладка ). Затем удерживайте Alt + F7 и переместите окно с помощью клавиш со стрелками в поле зрения. Готово.

Иногда трудно точно знать, где находится скрытое окно (и, следовательно, как его перемещать к экрану). Анимация во время выбора окна может быть полезна. Из-за моей настройки (я иногда использую второй экран поверх экрана моего ноутбука), окна, которые появляются с экрана, обычно ниже. Таким образом, добавление Alt + F7 + Up приводит их в поле зрения.

ответил Georg Jung 18 FebruaryEurope/MoscowbTue, 18 Feb 2014 22:27:26 +0400000000pmTue, 18 Feb 2014 22:27:26 +040014 2014, 22:27:26
1

Для всех, кто знаком с PowerShell, попробуйте следующее:

  • Копировать & amp; вставьте приведенный ниже код в сеанс ISE PowerShell.
  • Хит Run
  • Нажмите ALT + TAB /все, чтобы активировать экранное окно
  • Подождите несколько секунд (5 секунд от удара RUN в скрипте)
  • Теперь должно появиться окно.

Если окно является основным окном, оно будет перемещено в верхний левый угол экрана.

Если окно является дочерним окном другой программы, его верхний левый угол будет выровнен с верхним левым углом его родительского окна.

  Add-Type @ "
    использование системы;
    используя System.Runtime.InteropServices;

    //https://msdn.microsoft.com/en-us/library/windows/desktop/dd162897(v=vs.85).aspx
    public struct RECT
    {
        общественный длинный слева;
        общественный длинный верх;
        общественный длинный правый;
        общественное длинное дно;
    }

    открытый класс User32WinApi
    {

        //https://msdn.microsoft.com/en-us/library/windows/desktop/ms633505(v=vs.85).aspx
        /*
            Возвращает ручку окна в фокусе
            NB: В некоторых сценариях это может быть NULL; поэтому код, необходимый для обработки такого события
        * /
        [DllImport ( "User32.dll")]
        public static extern IntPtr GetForegroundWindow ();

        //https://msdn.microsoft.com/en-us/library/windows/desktop/ms633503(v=vs.85).aspx
        /*
            top & amp; left всегда равны 0 (т. е. поскольку прямоугольник относится к самому окну)
            дно и amp; справа равны ширине и ширине окон, соответственно.
        * /
        [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 = Новый объект RECT

«Быстро, заходите в окно, в котором вы находитесь, - у вас есть 5 секунд ...»
Start-Sleep -Seconds 5 # за 5 секунд для пользователя, чтобы получить окно, в котором они находятся в фокусе (например, используя ALT + TAB /что угодно)
$ activeWindow = [User32WinApi] :: GetForegroundWindow ()
if ($ activeWindow) {
    if ([User32WinApi] :: GetClientRect ($ activeWindow, [ref] $ windowSize)) {
        if ([User32WinApi] :: MoveWindow ($ activeWindow, 0, 0, $ windowSize.right, $ windowSize.bottom, $ repaint)) {
            «Окно прошло успешно (надеюсь, вы согласитесь!)»
        } else {
            Write-Warning "Не удалось переместить активное окно"
        }
    } else {
        Write-Warning "Не удалось получить размер активного окна"
    }
} else {
    Write-Warning "Не найдено активного окна"
}
 

Исходный код здесь: https://gist.githubusercontent.com/JohnLBevan/1593bbb860c2d2af436a1c9414e8adfa/

ответил JohnLBevan 20 J0000006Europe/Moscow 2017, 20:17:22
0

поместите курсор на панель задач .. щелкните правой кнопкой мыши, выберите окно показа бок о бок .. он выведет окно на экран .. и, наконец, снова вернет курсор на панели задач, щелкните правой кнопкой мыши, выберите окно отмены окна рядом.

ответил ravi21 16 62013vEurope/Moscow11bEurope/MoscowSat, 16 Nov 2013 23:12:31 +0400 2013, 23:12:31
0

Вы также можете использовать UltraMon (несвободный, Windows, GUI), чтобы настроить сочетание клавиш для перемещения окна на следующий или предыдущий монитор.

введите описание изображения здесь>> </p></div>
										<div class=ответил Franck Dernoncourt 28 J0000006Europe/Moscow 2017, 04:10:28

0

От Переместите окно на нижний /верхний монитор с помощью ярлыка в Windows Tymric :

Я написал сценарий AHK.

Использование:

Win + Alt + Стрелка : переместите активное окно на монитор, направление которого указано стрелкой. Обратите внимание, что это может привести к тому, что ваше окно будет перемещаться за пределы экрана, если вы попытаетесь перейти от монитора 2 или прямо от монитора 3 в своей настройке. Я обновлю его в будущем.

Win + Alt + Number : переместить активное окно на указанный номер монитора

  #Persistent

SysGet, MonitorCount, MonitorCount


#! Up ::
  GoSub CalculateDisplacement
  WinMove, A,,% xPos%,% displaceYneg%
  вернуть
#!Вниз::
  GoSub CalculateDisplacement
  WinMove, A,,% xPos%,% displaceYpos%
  вернуть
#!Оставил::
  GoSub CalculateDisplacement
  WinMove, A,,% displaceXneg%,% yPos%
  вернуть
#!Правильно::
  GoSub CalculateDisplacement
  WinMove, A,,% displaceXpos%,% yPos%
  вернуть

#! 1 ::
  GoSub CalculateDisplacement
  WinMove, A,,% xPosOn1%,% yPosOn1%
  вернуть

#! 2 ::
  if (MonitorCount> 1) {
    GoSub CalculateDisplacement
    WinMove, A,,% xPosOn2%,% yPosOn2%
  }
  вернуть

#! 3 ::
  if (MonitorCount> 2) {
    GoSub CalculateDisplacement
    WinMove, A,,% xPosOn3%,% yPosOn3%
  }
  вернуть

#! 4 ::
  if (MonitorCount> 3) {
    GoSub CalculateDisplacement
    WinMove, A,,% xPosOn4%,% yPosOn4%
  }
  вернуть

#! 5 ::
  if (MonitorCount> 4) {
    GoSub CalculateDisplacement
    WinMove, A,,% xPosOn5%,% yPosOn5%
  }
  вернуть

#! 6 ::
  if (MonitorCount> 5) {
    GoSub CalculateDisplacement
    WinMove, A,,% xPosOn6%,% yPosOn6%
  }
  вернуть

#! 7 ::
  if (MonitorCount> 6) {
    GoSub CalculateDisplacement
    WinMove, A,,% xPosOn7%,% yPosOn7%
  }
  вернуть

#! 8 ::
  if (MonitorCount> 7) {
    GoSub CalculateDisplacement
    WinMove, A,,% xPosOn8%,% yPosOn8%
  }
  вернуть

#! 9 ::
  if (MonitorCount> 8) {
    GoSub CalculateDisplacement
    WinMove, A,,% xPosOn9%,% yPosOn9%
  }
  вернуть


CalculateDisplacement:
  WinGetPos, xPos, yPos,,, A
  Loop,% MonitorCount% {
    SysGet, MonitorDimension, Monitor,% A_Index%
    if (xPos> MonitorDimensionLeft и xPos <MonitorDimensionRight и yPos <MonitorDimensionBottom и 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
  }
  вернуть
 
ответил Franck Dernoncourt 28 J0000006Europe/Moscow 2017, 04:14:15
0

Я написал инструмент под названием Borderline , который автоматически переместится за пределы экрана окна на экране при запуске. Вы должны запустить его, когда вам это нужно (лучше всего работает, если вы назначаете ему комбинацию клавиш или помещаете его в начальное меню), но это также означает, что он не всегда работает в фоновом режиме.

ответил jamesdlin 3 AMpTue, 03 Apr 2018 01:01:57 +030001Tuesday 2018, 01:01:57
-1

Как переместить окна, открывающиеся за кадром?

Временное понижение разрешения экрана, захват верхней панели мышью и перемещение центра. Подождите, пока система автоматически восстановит разрешение.

  1. DeskTop -> Разрешение экрана
  2. Выберите свой монитор, измените его на какое-то более низкое разрешение от текущей настройки.
  3. Система отображает новое разрешение, спрашивает, хотите ли вы сохранить или вернуться за 30 секунд.
  4. В течение 30 секунд возьмите пропущенное окно и переместите его в центр.
  5. Подождите, пока время автоматического возврата не вернется.

Окно перемещено ...

ответил Russ 27 PM00000080000005631 2014, 20:50:56

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132