Як відновити вікна на початковий екран при повторному підключенні зовнішнього монітора?


17

Уявіть, що ви робите це ...

  1. Підключіть зовнішній монітор.
  2. Запустіть деякі програми, деякі на кожному моніторі.
  3. Відключіть зовнішній монітор.
    • Все добре, тому що всі додатки переміщують основний монітор.
  4. Повторно підключіть зовнішній монітор.
    • Програми залишаються на первинному моніторі, але було б дуже приємно, якби вони перейшли на зовнішній монітор, на якому вони були раніше.

Використання Windows 10. Чи є якісь рішення або способи вирішення цього питання для автоматичного переміщення програм на зовнішній монітор?


6
Ви можете подивитися тут - - superuser.com/q/240362/302907
Anaksunaman

Відповіді:


1

У минулому я для цього використовував інструмент Autohotkey під назвою Windowpad. Мабуть, це тепер було замінено новою, вдосконаленою версією під назвою WindowPadX . Прокрутіть униз, щоб побачити ритм. Повна документація тут .

Це було вирішальним для мене на кількох моніторах. Мені подобалося легко перемикати вікно між двома.

Ви можете встановити гарячі клавіші для наступного (з readme):

Можливі дії, які потрібно налаштувати на гарячих клавішах

Віконні дії

Мультимонітор

WPXA_MoveWindowToMonitor: переміщення вікна між екранами, із збереженням відносного положення та розміру.

WPXA_MinimizeWindowsOnMonitor: мінімізуйте всі вікна на даному екрані

WPXA_GatherWindowsOnMonitor: "Зберіть" вікна на певному екрані.

WPXA_FillVirtualScreen: Розгорніть вікно, щоб заповнити віртуальний екран (усі монітори).

Загальні

WPXA_MaximizeToggle: Максимізуйте або відновіть вікно.

WPXA_TopToggle: Перемикає "AlwaysOnTop" для заданого вікна

WPXA_RollToggle: перемикає "Roll / Unroll" для даного вікна WPXA_Move: переміщення та зміна розміру вікна на основі концепції "pad".

WPXA_TileLast2Windows: Плитка активна та останнє вікно

Дії миші з кількома моніторами

WPXA_MoveMouseToMonitor: Переміщення миші до центру даного монітора

WPXA_ClipCursorToCurrentMonitorToggle: перемикання миші на поточний монітор

WPXA_ClipCursorToMonitor: Затискає (обмежує) мишу на даному моніторі

Загальні дії миші

WPXA_MouseLocator: легко знайти мишу

Ви можете знайти його та інші інструменти серед "Кураційного списку дивовижних бібліотек AutoHotkey, розподілів бібліотек, сценаріїв, інструментів та ресурсів" тут


Цей перелік функцій дозволяє припустити, що він може переміщувати вікна навколо, але чи може він відновити свої позиції до певного стану? що означає "збирати" та "розгортати / розкручувати на основі концепції колодки"?
TT--

@ TT-- "Збирати" збирає всі вікна на поточний дисплей. Це чудово, коли, наприклад, я хочу, щоб усі вікна, крім одного чи, можливо, декількох вікон на одному дисплеї, і вікна (и), на які я зосереджуюсь на своєму головному моніторі. "WPXA_MaximizeToggle: Максимізувати або відновити вікно" повинно чергуватися між максимальним та оригінальним. "Roll / Unroll ..." приховує робочу зону вікна і залишає відображатися лише рядок заголовка, або переходить із стану згорнутого до відновлення повного вікна. Дещо це з пам’яті, і я, можливо, не зовсім коректний, але якщо ні, це досить близько.
лудіном

1
дякую за подальші подробиці. Здається, MaximizeToggleщо відновлення вікон на різні екрани, як я шукав. Я в кінцевому підсумку скористався цим DockWin, який спеціально робить це (і більше нічого).
TT--

0

У деяких gpu є підтримка цього, наприклад, панель управління Nvidia, яка дозволяє застосовувати налаштування для цього та безліч інших функцій.

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


0

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

Створення автоматизованого способу повинно бути простим для тих, хто має трохи навичок кодування, і його можна запустити за необхідності (тобто після повторного підключення монітора). Це можна зробити за допомогою сценарію дії, .bat-файлу або нативного додатка.

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

Інша можливість із функцією "Інтернет" (не потрібно перезавантажувати додаток) буде, якщо Windows дозволяє отримати доступ до вікна одного процесу іншим. Підходом можуть бути функції SendMessage та WindowProc.

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

https://msdn.microsoft.com/en-us/library/windows/desktop/ms644950%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396

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

Повідомлення WM_Move https://docs.microsoft.com/en-us/windows/desktop/winmsg/wm-move

Надіслано після переміщення вікна.

Вікно отримує це повідомлення через свою функцію WindowProc.

https://msdn.microsoft.com/en-us/library/ms633573%28v=VS.85%29.aspx?f=255&MSPPError=-2147217396

Функція, визначена додатком, яка обробляє повідомлення, що надсилаються у вікно. [...]


0

Я використовую UltraMon (я вважаю, що це Open Source) і в певних обставинах це може зробити, якщо правильно налаштовано.

Спочатку встановіть програму UltraMon . Потім, коли він працює, скажемо, що зараз у вас підключений лише один монітор (не має значення число), створіть профіль:

  • Клацніть правою кнопкою миші піктограму в тексті
  • Клацніть лівою кнопкою миші Відображення профілів
  • Клацніть лівою кнопкою миші новий дисплейний профіль, назвіть його (наприклад, те, що я роблю, це дати йому номер, що відображає кількість моніторів, якими ви користуєтесь, як профіль 1).
  • Тепер у вас є. Класно, ви можете створювати шпалери для кожного монітора, заставки тощо. Отримайте всі свої значки саме так, як вам потрібно.
  • Клацніть правою кнопкою миші значок піктограми.
  • Клацніть лівою кнопкою миші піктограми робочого столу, вліво збережіть позиції

Тепер підключіть / відключіть інші дисплеї. Створіть профіль для цієї нової установки. Можливо, назвіть його "Профіль 7" за підключення 7 моніторів. Тепер збережіть позиції значків, коли вони є такими, якими ви хочете.

Ви можете легко використовувати цей інструмент для перемикання вперед і назад між профілями. Ви можете легко розмістити ярлики на робочому столі для швидкого перемикання між профілями.

Нарешті, в розширених опціях ви можете сказати UltraMon робити це постійно, автоматично для вас, але це може зажадати платної версії (разова довічна плата).

Я купив UltraMon ще в 2009 році за $ 19,99, і це цілком вартувало цього.


3
Чи можете ви детальніше розповісти про "як", обставини, в яких це працює, і як правильно його налаштувати?
fixer1234

Так, сер / мама. Спочатку встановіть програму UltraMon. www.ultramon.com Потім, коли він запущений, скажемо, що зараз у вас підключений лише 1 монітор (не має значення число). Створіть профіль: Клацніть правою кнопкою миші на значку в системі Назвіть це (це я роблю) за кількістю моніторів, якими ви користуєтесь, як профіль 1. Тепер у вас є один. Класно, ви можете створювати шпалери для кожного монітора, заставки тощо. Отримайте всі свої значки саме так, як вам потрібно. Клацніть правою кнопкою миші значок піктограми. Клацніть лівою кнопкою миші піктограми робочого столу. Ліворуч збережіть позиції
PyTis

Продовжуючи роботу, тепер підключіть / відключіть інші дисплеї. Створіть профіль для цієї нової установки. Можливо, назвіть його "Профіль 7" для підключення 7 моніторів. Тепер збережіть позиції значків, коли вони є такими, як вам потрібно. Ви можете легко використовувати цей інструмент для перемикання вперед і назад між профілями. Ви можете легко розмістити ярлики на робочому столі для швидкого перемикання між профілями. Нарешті, в розширених варіантах ви можете сказати UltraMon робити це постійно, автоматично, але це може бути платним (разовим платежем). Я купив UltraMon ще в 2009 році за 19,99, і це цілком вартувало цього.
PyTis

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

0

Він Редок найкраще працював для мене. Redock є автоматичним - зберігає та відновлює вікна без будь-якого втручання. Магія! Його відкритий джерело теж!


-1

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

Іншим рішенням є використання DisplayFusion для прив'язування вікна до найближчого монітора (єдиного підключеного) за допомогою гарячої клавіші "Перенести всі вікна на поточний монітор".


1
чому так складно? Якщо ви просто хочете перейти на інший монітор, тоді просто використовуйте windows + shift + ліво / право
phuclv

-1

Для цього не існує жодного рішення, для переміщення на частини екрана потрібно використовувати клавішу Windows на клавіатурі лівими стрілками праворуч, щоб перейти між екранами або клавішею Windows + зсув + ліво / право.

Клавіша Windows + P також допомагає в різних ситуаціях монітора, щоб допомогти з дзеркальним відображенням / розширенням тощо.

Але знову ж таки, коли ви від'єднаєте екран, якщо в цих вікнах були метадані, вони згодом пішли


Власне, існує кілька рішень. Одне чи два, про які ви згадали. Зміна роздільної здатності - ще одна.
Hennes

-2

Ви можете це зробити, якщо ви старий "хлопець з клавіатури", як я; -] Я зрозумів це ще віки тому, оскільки я був мультимонієром з початку 90-х, це дуже давнє питання різні інтерфейси користувача.

Найпростіший спосіб, який я знайшов для екранів / прикордонних програм, це:

  • Просто виберіть додаток за допомогою панелі завдань або Alt-Tab
  • Утримуйте клавішу Alt і натисніть пробіл ( Alt- Spacebar)
  • На головному екрані ви побачите меню, одним із варіантів якого буде "Переміщення", з підкресленим M.
  • Тому натисніть клавішу "M", поки меню все ще знаходиться на екрані
  • На даний момент не вказуйте / клацайте / тощо, оскільки ви зараз «переставляєте» активне вікно (позаекранне).
  • Ви можете перетягнути мишу ( НЕ БЕЗПЕЧУВАЙТЕ КОРОБКИ ), і вам слід побачити, що додаток входить / виходить з головних екранів, достатньо для того, щоб ви розмістили його десь зручніше для використання.
  • Крім того, ви можете використовувати клавіші зі стрілками для переміщення програми, працює так само, але трохи повільніше, щоб зрозуміти, де вікна та в який бік він спрямований.
  • Після того, як ви знайдете Вікно у «хорошому місці», де його можна активно розміщувати / переміщувати, натисніть головну кнопку миші або, використовуючи метод клавіатури, натисніть клавішу «ввести».
  • Тепер вікно / додаток слід легко переміщувати / регулювати.
  • Повторіть для всіх вікон / програм, які перебувають поза екраном.

3
(1) Ваша відповідь, здається, говорить про те, що ОП не має уявлення про те, як рухати вікна, що образливо і наївно. Вся суть питання полягає в тому, щоб змусити комп’ютер запам'ятати, яке вікно було на якому моніторі, і змусити комп’ютер відновити їх автоматично, без потреби користувачу запам’ятовувати, де вони знаходилися, а потім переміщати їх назад вручну, по одному. (2) Окрім комбінації клавіш Alt + Space, ваша відповідь по суті така ж, як і перший абзац відповіді hydraxx . … (Продовження)
Скотт

(Продовження) ... (3) Чому ви вважаєте, що "найпростіший" спосіб це зробити за допомогою клавіатури, щоб перейти в "режим переміщення", а потім використовувати мишу для переміщення? Як говорить hydraxx, ви можете це зробити повністю за допомогою клавіатури. Або ви можете зробити це цілком за допомогою миші, натиснувши на заголовок вікна та перетягнувши. Ви представили найбільш складне можливе рішення.
Скотт

Насправді це досить просто, опис просто трохи складний. Я не отримую пункт меню "Перемістити", коли я пробую річ на панелі завдань, або вона застаріла, або щось із моєї системи заважає переглядати її. Я згоден, окрім alt-spc, моя відповідь по суті однакова, але я показав свій метод десяткам, і це завжди було так, як "ух, це було просто, дивно, чому не спробував цього" . Моя відповідь, як було зазначено, дозволяє вирішувати лише ключ. Для цього теж є утиліти, але іноді розширення оболонок можуть мати небажані ефекти ...
PeteG

Я погоджуюся, хоча ми більш-менш потрапляємо в одне і те ж місце, використовуючи один і той же конструкт в ОС.
PeteG

Ви також можете використовувати DisplayFusion для цього. У ньому встановлено параметр "прив’язати" поточне завдання / вікно до поточного (ймовірно, основного) монітора.
PeteG
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.