Як перемістити вікна, які відкриваються на екрані?


272

У мене є подвійне налаштування монітора, і я нещодавно розігрувався з налаштуваннями позиціонування, і деякі мої додатки з одним вікном сприяють збереженню місця, коли вони востаннє були закриті, і відкриття в тій же позиції пізніше. На жаль, це тепер виводить їх із зони видимості моїх екранів!

Чи є якийсь спосіб примусити певне вікно до видимої області?


2
Це все ще проблема в Windows 10! У мене є 3 монітори, і я використовую лише один "тут і там" ... коли я це роблю, тоді перестаньте використовувати його, деякі відкриті програми за замовчуванням відкриваються на ньому. Мені потрібно зробити виграш + стрілка ліворуч, щоб врешті повернути її на головний монітор.

1
Проблема все-таки через сім років ...
Джек Уейсі

Можливий дублікат superuser.com/questions/1206086/…
SDsolar

Відповіді:


194

Для користувачів Windows 7 та новіших версій: Windows Key+ Shift+ або перемістить вибране вікно на монітор у цьому напрямку.


2
Дякую за це, у мене був додаток з нестандартним вікном, тому техніка Alt-Space не працювала (Foxit Reader для Windows).
Bdoserror

3
Також слід зазначити виграш + ліворуч / праворуч / вгору, який розміщує вікно, що охоплює половину активного монітора (з обох боків) або максимізує його. Це має працювати в будь-яких умовах, які я знайшов, і дуже корисні клавіші (за винятком випадків, коли я постійно натискаю на них, намагаючись fn + клавіші зі стрілками: P).
Кет

11
Це не робить нічого в моєму Windows 10 Pro x64
Mike 'Pomax' Kamermans

3
@ Mike'Pomax'Kamermans: Смішно. Це єдине , що працює на моєму ноутбуці Windows 10 Pro x64 для переміщення вікна Emacs, яке відкривається поза екраном.
Майк Шеррілл 'Відкликання котів'

2
Нічого собі, не можу повірити, що я ніколи про це не знав. Хтось все ще вважає це корисним через 8 років :)
veryRandomMe

433

Я використовую такий підхід:

  • Використовуйте Alt+, Tabщоб перейти на позаекранну програму.
  • Натисніть Alt+, SPACEщоб відкрити системне меню (його ви не побачите, оскільки воно вимкнено)
  • Натисніть, Rщоб вибрати вибір меню "Відновити", щоб переконатися, що вікна не максимізовані (ви не можете перемістити його, якщо воно максимально)
  • Знову натисніть Alt+ SPACE, потім Mвиберіть вибір меню "Перемістити".
  • Натисніть одну з клавіш зі стрілками, щоб ініціювати рух.
  • Тепер просто за допомогою миші розмістіть вікно, куди ви хочете.

Якщо ви використовуєте не англійську версію Windows, вибір меню "R" і "M", ймовірно, буде іншим.


8
Велике спасибі "Terje Mikal" за ваше рішення, яке врятувало мене. Але зважаючи на те, що проблема трапляється лише після того, як Windows 7 видалила старе хороше рішення (клацніть правою кнопкою миші кнопку програми на панелі завдань), є ще краще рішення, розміщене "kmote" 18 червня 2013 17:45 у розділі "Emthigious" 10 жовтня 2010, 08:50: «Під Windows 7 потрібно клацнути правою кнопкою миші кнопку Кнопка на панелі завдань»
Мішель Мерлін

1
Намагався кожен інший крок, але ініціювати рух за допомогою клавіш зі стрілками - це те, що нарешті, насправді зробило ... ух. І я був таким близьким до перевстановлення програми!
Філіп

1
У додатку, з яким я маю справу, відновлення замуровано, але Maximize працює в цій фазі, і тоді переміщення не потрібно. Максимізуйте для виграшу!
Брайан Булковський

Я роблю так, як описано вище, але наступне комбо також працює для мене, Alt + Tab, Alt + Пробіл, M, потім натисніть клавішу Esc, і це, здається, працює
Mz

Майже 2020 рік, як і раніше, займається цим.
Мерт

14

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

введіть тут опис зображення

Інформація від How To Geek


3
У поточній версії Windows 10 ви також можете навести курсор миші на панель завдань і потримати якусь секунду, що призведе до появи ескізів вікна. Клацання правою клавішею мініатюри дає «старе» контекстне меню так само, як і клацання зсуву.
Кодерер

1
@Coderer: Коментар дуже корисний, я цього не знав. Я думав, що вони її повністю зняли.
Дуб_3260548

Я зовсім забув про це! Я думаю, ви також можете клацнути правою кнопкою миші, якщо кнопка панелі завдань являє собою одне вікно. Ви отримуєте інше контекстне меню, якщо для цієї програми є більше одного вікна.
Coderer

12

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


2
Я не знав про клавіатуру, але ви не можете користуватися мишкою, якщо вони не є на екрані, я це вже намагався.
Меттью Шарлі

2
Ви повинні мати можливість використовувати клавіші зі стрілками, навіть якщо вони є поза екраном, якщо тільки у вашій системі немає чогось нестандартного, що перешкоджає цьому. Це завжди було моєю стандартною відповіддю для людей, які відчувають цю проблему.
music2myear

9
Також після натискання щонайменше однієї клавіші зі стрілкою вікно "прикріплюється" до миші, і ви можете переміщати його за допомогою миші (не клацаючи!) Цей підхід однією клавішею-плюс-мишею, як правило, швидше, ніж використання лише клавіш.
Даніель Ріковський

8
У Windows 7 потрібно клацнути правою кнопкою миші кнопку SHIFT на панелі завдань.
kmote

Це єдине рішення, яке працювало для мене ...
sebagomez

8

Ще до того, як з’явилася панель завдань, я вирішував цю проблему, Alt+Spaceщоб відкрити меню вікна, а потім Mфункцію «Перемістити». Потім клавіші зі стрілками дозволять повернути вікно назад на екран.


+1 із застереженням, що вони не рухатимуться, якщо вони будуть максимально збільшені до екрана, це може бути проблемою, якщо вікна не просто "поза межами", але знаходяться на підставному екрані. Вони можуть бути для ОП, оскільки максимізація повинна охоплювати всю роздільну здатність зайнятого екрана.
mckenzm

8

Ще один швидкий спосіб - це натиснути кнопку r на клавіші завдань та вибрати Cascade Windows.


4
Це досить некрасивий спосіб зробити це, оскільки він торкнеться всіх моїх відкритих вікон (і зазвичай у мене є навіть відкритий браузер, якщо не півдесятка інших)
Меттью Шарлі

1
Правда, проте це найшвидше. Також ви можете закрити вікно, яке не було на екрані, і використовувати каскад скасування після цього, який відновить положення вікон. Я не знаю, чи воно також відновить положення вікна, яке було відключене від екрана, до цього положення, оскільки я не можу його спробувати (лише один монітор).
Т. Калтнекар

5

Я зіткнувся з цією проблемою, і абсолютно нічого не працювало для мене. Тож я зайшов у диспетчер завдань і клацнув правою кнопкою миші програму, яка була поза екраном. Переключитись не вийшло, і не вийшло на фронт. Зауважимо, це було статичне вікно, тому максимізація була недоступною через панель завдань. Але ви можете отримати максимізацію за допомогою диспетчера завдань, і це виводить його на ваш головний дисплей! Звідти ви можете робити все, що вам потрібно, з вікном. :)


Дякую за цю відповідь. Клацання правою кнопкою миші та Максимізація в диспетчері завдань було єдиним, що працювало для мене.
кодер

5

Редагувати: Скасовано відповідно до коментарів

Щоб швидко вирішити цю проблему в майбутньому та розмістити програми на подвійному екрані, я можу порекомендувати Winsplit Revolution . Він зводить вирішення цієї проблеми просто натисканням клавіш Ctrl-Alt та клавішею з цифровою панеллю, щоб повернути вікно туди, куди ви цього хочете.


на жаль, це вже не безкоштовно
Charbel

Так, це виглядає добре, але в мене сувора політика не платити, якщо я не хочу цього робити. Як і для Lastpass або Acronis True Image. І за моїм графіком цілком можливо, що може пройти більше 30 днів, перш ніж проблема знову виникне, щоб пробні періоди не працювали для мене.
SDsolar

1
На жаль, WinSplit Revolution припинено, і нових оновлень не надходить. "Замінено на" MaxTo ", на даний момент $ 19
TT--

1
WinSplit-Revolution є безкоштовним і все ще доступний для завантаження, якщо ви шукаєте його. Остання версія була 11.04, випущена в 2011 році. Вона працює в Windows 10. Змінене джерело v9.02 доступне в GitHub як WinSplit-Reloaded . Це дивовижний продукт.
Бен

@Ben, дякую за посилання. Я перейшов за посиланням у відповідь і цитував цю інформацію з нього. (Тепер на сторінці написано: "WinSplit Revolution більше не доступний, але ми пропонуємо відмінну альтернативу.") Readme в цій вилці GitHub є інформативною і конкретно згадує "версію 9.02, опубліковану в 2009 році".
TT--

3

Я використовую чудовий маленький інструмент під назвою Shove - він просто перевіряє, чи є яке-небудь вікно за межами екрану, і знову заносить його на екран. Це давнє програмне забезпечення (і домашня сторінка це доводить), але працює на всіх версіях Windows.


Посилання зараз мертве :-(
danio

:-( з іншого боку, це рішення, можливо, пережило себе. Чи все-таки все-таки трапляється? Минуло роки, як я востаннє мав потребу в цьому.
Torben Gundtofte-Bruun,


Програма монтажу просто закривається для мене (в Windows 7).
mhenry1384

@ mhenry1384 добре, що це 14 років (і 32 біт), ми не можемо реально очікувати, що він буде працювати з новими (64-бітовими?) версіями .....
Torben Gundtofte-Bruun

3

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

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


Так багато відповідей більш високо оцінених, але жодна з них не працювала на мене. Це зробили.
Dan Nissenbaum

Тут також мене привів Git GUI, але я вирішив це комбінацією клавіш Shift-RightClick (на піктограмі панелі завдань), Переміщення, клавіша зі стрілкою, потім миша (щоб поставити вікно, де воно має бути). Рішення Emthigious / Бреда Паттона працює.
mcalex

1

У мене була така ж проблема з winamp. Єдине (незадовільне) рішення, яке я знайшов до цих пір: зміни роздільної здатності екрана на інший і назад

Томас


1

Ви можете використовувати NIRSOFT WinLister. Я помітив, що метод "Move" недоступний у Windows 7, коли ви використовуєте класичну тему, і різні інші методи не вдалися, тому я розміщую альтернативу "ЯКЩО все інше не вдається".

  1. Завантажте програму WinLister тут .

  2. Запустіть WinLister як адміністратор та виберіть вікно, яке ви хочете повернути назад на екран. Якщо адміністратор не працює, не надасть програмі можливість переміщати вікна для вас.

  3. Клацніть правою кнопкою миші та виберіть "Центр вибраних Windows", і все закінчено!

Скріншоти тут .


1
Відмінна порада - це єдине рішення, яке працювало для мене на електроінструментах MS TFS, оскільки Alt-Space відкрило лише меню власного вікна провідника Windows, а не підвікна, яке було вимкнено екраном.
danio

1

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

У цьому випадку, якщо ви можете відкрити додаткові екземпляри програми, зробіть це. Перші кілька екземплярів майже напевно з’являться на панелі завдань як ще більше фантомних вікон. Продовжуйте це робити. Згодом вони почнуть заповнювати первинний вигляд. Потім скористайтеся піктограмою панелі завдань, щоб клацнути правою кнопкою миші та закрити екземпляри поза екраном. Після того, як на екрані немає відкритих екземплярів, закрийте їх на первинному екрані. Наступного разу, коли ви відкриєте цю програму, вона з’явиться на первинному екрані, а не "вимкнено камеру".


1
Що ви маєте на увазі: "віддалене місцезнаходження", "ваше місцезнаходження" тощо ...? Чому користувач буде «заблокований у будь-якому вікні, який не знаходиться на вашому екрані»?
Скотт

Він означає VM, Citrix, RDP і т. Д. Ви не збираєтеся читати мульти-4К на телефоні. Це стосується і фіктивних екранів. Деякі корпоративні користувачі вставляють підключення HDMI, щоб паркувати предмети з нагляду на робочому столі з поля зору. Повернення на 1 реальний екран повертає їх назад.
mckenzm

1

Виберіть вікно (наприклад, за допомогою Alt+ Tab). Потім утримуйте клавішу Alt+ F7і поверніть вікно клавішами зі стрілками назад у поле перегляду. Зроблено.

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


1

Для всіх, хто знайомий з PowerShell, спробуйте це:

  • Скопіюйте та вставте наведений нижче код у сеанс PowerShell ISE.
  • Натисніть Виконати
  • Натисніть ALT + TAB / що завгодно, щоб активувати вікно поза екраном
  • Зачекайте кілька хвилин (5 секунд від натискання RUN на сценарії)
  • Тепер має з’явитися вікно.

Якщо вікно - це головне вікно, воно буде переміщене до верхнього лівого кута екрана.

Якщо вікно - це дочірнє вікно іншої програми, його лівий верхній кут буде вирівняний з лівим верхнім кутом батьківського вікна.

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

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

введіть тут опис зображення


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. DeskTop -> Роздільна здатність екрана
  2. Виберіть монітор, змініть на деяку нижчу роздільну здатність від поточного налаштування.
  3. Система показує нову роздільну здатність і запитує, чи хочете ви зберегти або повернути її протягом 30 секунд.
  4. Протягом 30 секунд візьміть пропущене вікно і перемістіть його до центру.
  5. Зачекайте, коли час вимкнеться автоматично.

Вікно переміщено ...

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.