Jak przywrócić okna do pierwotnego ekranu po ponownym podłączeniu monitora zewnętrznego?

17

Wyobraź sobie, że to robisz ...

  1. Podłącz zewnętrzny monitor.
  2. Uruchom niektóre aplikacje, niektóre na każdym monitorze.
  3. Odłącz monitor zewnętrzny.
    • Wszystko dobrze, ponieważ wszystkie aplikacje przenoszą główny monitor.
  4. Ponownie podłącz monitor zewnętrzny.
    • Aplikacje pozostają na głównym monitorze, ale byłoby bardzo miło, gdyby wróciły na monitor zewnętrzny, na którym były wcześniej.

W systemie Windows 10. Czy istnieją jakieś rozwiązania lub obejścia tego problemu polegające na automatycznym przenoszeniu aplikacji z powrotem na monitor zewnętrzny?

joelsand
źródło
6
Możesz zajrzeć tutaj - - superuser.com/q/240362/302907
Anaksunaman

Odpowiedzi:

1

W przeszłości używałem do tego narzędzia Autohotkey o nazwie Windowpad. Najwyraźniej została ona zastąpiona nową, ulepszoną wersją o nazwie WindowPadX . Przewiń w dół, aby zobaczyć plik Readme. Pełna dokumentacja jest tutaj .

Było to dla mnie kluczowe na wielu monitorach. Uwielbiałem móc łatwo przełączać okno między nimi.

Możesz ustawić skróty dla następujących (z readme):

Możliwe działania do skonfigurowania na klawiszach skrótu

Czynności w oknie

Multi-Monitor

WPXA_MoveWindowToMonitor: Przesuwa okno między ekranami, zachowując względną pozycję i rozmiar.

WPXA_MinimizeWindowsOnMonitor: Zminimalizuj wszystkie okna na danym ekranie

WPXA_GatherWindowsOnMonitor: „Zbierz” okna na określonym ekranie.

WPXA_FillVirtualScreen: Rozwiń okno, aby wypełnić ekran wirtualny (wszystkie monitory).

Generał

WPXA_MaximizeToggle: Maksymalizuj lub przywróć okno.

WPXA_TopToggle: Włącza „AlwaysOnTop” dla danego okna

WPXA_RollToggle: Przełącza „Roll / Unroll” dla danego okna WPXA_Move: przesuwa i zmienia rozmiar okna w oparciu o koncepcję „pad”.

WPXA_TileLast2Windows: Kafelek aktywny i ostatnie okno

Działania myszy na wielu monitorach

WPXA_MoveMouseToMonitor: Przesuwa mysz do środka danego monitora

WPXA_ClipCursorToCurrentMonitorToggle: Przełącza mysz przycinającą na bieżący monitor

WPXA_ClipCursorToMonitor: Przycina mysz (ogranicza) do danego monitora

Ogólne działania myszy

WPXA_MouseLocator: Łatwe znajdowanie myszy

Znajdziesz go i inne narzędzia w „Wyszukanej liście wspaniałych bibliotek AutoHotkey, dystrybucji bibliotek, skryptów, narzędzi i zasobów” tutaj

ludinom
źródło
ta lista funkcji sugeruje, że może przesuwać okna, ale czy może przywrócić ich pozycje do określonego stanu? co oznaczają „zbieraj” i „rozwijaj / rozwijaj w oparciu o koncepcję padu”?
TT--
@ TT-- „Zbierz” gromadzi wszystkie okna na bieżącym ekranie. Jest to świetne, gdy na przykład chcę mieć wszystkie okna oprócz jednego lub kilku okien na jednym ekranie, a okna, na których skupiam się, na głównym monitorze. „WPXA_MaximizeToggle: Maksymalizuj lub przywróć okno” powinno zmieniać się pomiędzy zmaksymalizowanym a oryginalnym. „Roll / Unroll ...” ukrywa obszar roboczy okna i pozostawia wyświetlany tylko pasek tytułu lub przechodzi ze stanu zwiniętego do przywracania pełnego okna. Niektóre z nich pochodzą z pamięci i być może nie jestem do końca poprawna, ale jeśli nie, to całkiem blisko.
ludinom,
1
dzięki za dalsze szczegóły. Wygląda na to, MaximizeToggleże przywróciłyby okna do różnych ekranów, których szukałem. Skończyło się na tym „DockWin”, który właśnie to robi (i nic więcej).
TT--
0

Niektóre GPU mają wsparcie dla tego, takie jak panel sterowania Nvidia, który pozwala na zastosowanie ustawień dla tego i wielu innych funkcji.

Lub możesz po prostu ustawić wiele ustawień wyświetlania, aby odzwierciedlały pulpit (zamiast rozszerzać) na wszystkich monitorach, jeśli to działa.

CymaTechs
źródło
0

Programy systemu Windows - zwane obecnie aplikacjami (aplikacjami) - mogą zapisywać pozycję swojego okna w pliku lub rejestrze. Jeśli wiadomo, gdzie znajdują się te dane, można je edytować ręcznie w notatniku lub edytorze rejestru. (nieprawidłowe wpisy rejestru mogą powodować niestabilność systemu Windows lub błędy)

Stworzenie zautomatyzowanego sposobu powinno być łatwe dla kogoś z odrobiną umiejętności kodowania i może być uruchomione w razie potrzeby (tj. Po ponownym podłączeniu monitora). Można to zrobić za pomocą skryptu akcji, pliku .bat lub aplikacji natywnej.

Aplikacje, o których mowa, muszą jednak zostać wcześniej zamknięte, aby możliwe było wdrożenie żądanych pozycji.

Inną możliwością z funkcją „online” (nie jest wymagane ponowne uruchomienie aplikacji) byłoby, gdyby Windows pozwalał na dostęp do okna jednego procesu przez inny. Podejściem mogą być funkcje SendMessage i WindowProc.

(W tym momencie nie jestem pewien, czy dotyczy to tylko wątków aplikacji nadrzędnej, czy może to zrobić także wątki innych aplikacji ... i oczywiście wymaga dobrej wiedzy w zakresie programowania dla systemu Windows)

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

Wysyła określoną wiadomość do okna lub okien. [...] Jeśli określone okno zostało utworzone przez wątek wywołujący, procedura okna jest wywoływana natychmiast jako podprogram. Jeśli określone okno zostało utworzone przez inny wątek, system przełącza się na ten wątek i wywołuje odpowiednią procedurę okna.

Wiadomość WM_Move https://docs.microsoft.com/en-us/windows/desktop/winmsg/wm-move

Wysyłane po przeniesieniu okna.

Okno odbiera ten komunikat za pośrednictwem funkcji WindowProc.

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

Funkcja zdefiniowana przez aplikację, która przetwarza wiadomości wysłane do okna. [...]

DigitalBlade969
źródło
0

Korzystam z UltraMon (uważam, że jest to oprogramowanie typu open source), aw niektórych okolicznościach może to zrobić, jeśli jest poprawnie skonfigurowane.

Najpierw zainstaluj program UltraMon . Następnie, gdy jest uruchomiony, powiedzmy, że masz podłączony tylko jeden monitor (bez względu na liczbę), utwórz profil:

  • Kliknij prawym przyciskiem myszy ikonę na pasku zadań
  • Kliknij lewym przyciskiem Wyświetl profile
  • Kliknij lewym przyciskiem myszy nowy profil wyświetlania, nazwij go (na przykład, daję mu liczbę odzwierciedlającą liczbę monitorów, których używasz, np. Profil 1).
  • Teraz masz jeden. Fajnie, możesz stworzyć tapetę dla każdego monitora, wygaszaczy ekranu itp. Zbierz wszystkie swoje ikony tak, jak chcesz.
  • Kliknij ikonę paska zadań prawym przyciskiem myszy.
  • Kliknij lewym przyciskiem na pulpicie Ikony po lewej Zapisz pozycje

Teraz podłącz / odłącz inne wyświetlacze. Utwórz profil dla tej nowej konfiguracji. Może nazwać to „Profil 7”, ponieważ podłączono 7 monitorów. Teraz zapisz pozycje ikon, kiedy są takie, jak chcesz.

Za pomocą tego narzędzia można łatwo przełączać się między profilami. Możesz łatwo umieszczać skróty na pulpicie, aby szybko przełączać się między profilami.

Na koniec, w opcjach zaawansowanych możesz powiedzieć UltraMonowi, żeby robił to cały czas, automatycznie dla ciebie, ale może to wymagać wersji płatnej (jednorazowa opłata za całe życie).

Kupiłem UltraMon w 2009 roku za 19,99 USD i było całkowicie tego warte.

PyTis
źródło
3
Czy potrafisz opracować „jak”, okoliczności, w których to działa i jak poprawnie skonfigurować?
fixer1234
Tak, proszę pana. Najpierw zainstaluj program UltraMon. www.ultramon.com Następnie, gdy jest uruchomiony, powiedzmy, że masz teraz podłączony tylko 1 monitor (bez względu na liczbę), utwórz profil: Kliknij prawym przyciskiem myszy ikonę na pasku zadań. Kliknij lewym przyciskiem myszy Profile wyświetlania Kliknij lewym przyciskiem myszy nowy profil wyświetlania Nazwij go (tak robię) według liczby monitorów, których używasz, na przykład Profil 1. Teraz masz jeden. Fajnie, możesz stworzyć tapetę dla każdego monitora, wygaszacza ekranu itp. Zbierz wszystkie swoje ikony tak, jak chcesz. Kliknij ikonę paska zadań prawym przyciskiem myszy. Kliknij lewym przyciskiem na pulpicie Ikony po lewej Zapisz pozycje
PyTis,
Kontynuując, podłącz / odłącz inne wyświetlacze. Utwórz profil dla tej nowej konfiguracji. Może nazwać to „Profil 7”, ponieważ podłączono 7 monitorów. Teraz zapisz pozycje ikon, kiedy są takie, jak chcesz. Za pomocą tego narzędzia można łatwo przełączać się między profilami. Możesz łatwo umieszczać skróty na pulpicie, aby szybko przełączać się między profilami. Wreszcie, w opcjach zaawansowanych możesz powiedzieć UltraMonowi, aby robił to cały czas, automatycznie dla ciebie, ale może to być płatna opcja (jednorazowa opłata za dożywotnią opłatę). Kupiłem UltraMon w 2009 roku za 19,99 i było całkowicie tego warte.
PyTis,
To nie wydaje się odpowiadać na pytanie - pytanie dotyczyło przywracania okien aplikacji na każdym monitorze, dotyczy to ikon pulpitu (i powiązanych rzeczy). Brzmi jak użyteczne narzędzie, ale nie odpowiednie.
Bobson
0

Win Redock działał dla mnie najlepiej. Redock jest automatyczny - zapisuje i przywraca okna bez żadnej interwencji. Magia! To także otwarte oprogramowanie!

BT
źródło
-1

Jeśli Shift + kliknięcie prawym przyciskiem myszy ikonę na pasku zadań, a następnie naciśnij Przenieś, możesz użyć klawiszy strzałek, aby przenieść okno i klawisza Enter, aby ustawić pozycję. Miałem ten sam problem kilka lat temu.

Innym rozwiązaniem jest użycie DisplayFusion do przyciągnięcia okna do najbliższego monitora (jedynego podłączonego) za pomocą skrótu „Przenieś wszystkie okna do bieżącego monitora”.

hydraxx
źródło
1
dlaczego tak skomplikowany? Jeśli chcesz po prostu przejść do innego monitora, po prostu użyj systemu Windows + Shift + Lewo / Prawo
Phuclv
-1

Nie ma na to żadnych rozwiązań, musisz użyć klawisza Windows na klawiaturze ze strzałkami w lewo w prawo, aby przechodzić między ekranami, lub klawisz Windows + Shift + Lewo / Prawo, aby przejść do części ekranu.

Klawisz Windows + P pomaga również w sytuacjach z wieloma monitorami, pomagając w tworzeniu kopii lustrzanych / rozszerzaniu itp.

Ale znowu, gdy odłączysz ekran, jeśli w tych oknach były jakieś metadane, znikną one później

Piksel
źródło
W rzeczywistości istnieje wiele rozwiązań. Jeden lub dwa, o których wspomniałeś. Zmiana rozdzielczości to kolejna.
Hennes
-2

Możesz to zrobić, jeśli jesteś starym „facetem od klawiatury”, takim jak ja; -] Zorientowałem się to wieki temu, ponieważ od początku lat 90. jestem wielomiesięczny, to był bardzo długi problem, wśród nieco różne interfejsy użytkownika.

Najłatwiejszy sposób, jaki znalazłem dla aplikacji poza ekranem / obramowaniem, to:

  • Po prostu wybierz aplikację za pomocą paska zadań lub Alt-Tab
  • Przytrzymaj klawisz Alt i naciśnij spację ( Alt- Spacebar)
  • Zobaczysz menu na ekranie głównym, którego jedną z opcji będzie „Przenieś”, z podkreślonym literą M.
  • W związku z tym naciśnij klawisz „M”, gdy menu jest nadal wyświetlane
  • W tym momencie nie wskaż / kliknij / etc, ponieważ „zmieniasz położenie” aktywnego okna (poza ekranem).
  • Możesz przeciągać myszą wokół ( BRAK PRZYCISKÓW NA TERAZ ) i powinieneś zobaczyć aplikację wchodzącą / wychodzącą z głównych ekranów, wystarczającą, abyś umieścił ją w wygodniejszym miejscu.
  • Alternatywnie możesz użyć klawiszy strzałek, aby przenieść aplikację, działa równie dobrze, ale nieco wolniej, aby dowiedzieć się, gdzie jest okno i w którą stronę zmierza.
  • Po ustawieniu okna w „dobrym miejscu”, w którym można go aktywnie zmienić rozmiar / przenieść, kliknij główny przycisk myszy lub, jeśli używasz metody klawiatury, naciśnij klawisz „enter”.
  • Okno / aplikacja powinna być teraz łatwa do przenoszenia / dostosowywania.
  • Powtórz dla wszystkich okien / aplikacji, które są poza ekranem.
PeteG
źródło
3
(1) Twoja odpowiedź wydaje się sugerować, że PO nie ma pojęcia, jak poruszać oknami, co jest obraźliwe i naiwne. Chodzi o to, aby komputer zapamiętał, które okno znajdowało się na którym monitorze, i aby komputer przywrócił je automatycznie, bez konieczności pamiętania, gdzie się znajdowały, a następnie cofania ich ręcznie, pojedynczo. (2) Oprócz skrótu klawiaturowego Alt + Spacja, twoja odpowiedź jest zasadniczo taka sama jak pierwszy akapit odpowiedzi hydraxx . … (Ciąg dalszy)
Scott,
(Ciąg dalszy)… (3) Dlaczego uważasz, że „najłatwiejszym” sposobem jest użycie klawiatury, aby przejść do „trybu ruchu”, a następnie użycie myszy do wykonania ruchu? Jak mówi hydraxx, możesz to zrobić całkowicie za pomocą klawiatury. Lub możesz to zrobić całkowicie za pomocą myszy, klikając nagłówek okna i przeciągając. Przedstawiłeś najbardziej złożone możliwe rozwiązanie.
Scott,
To jest naprawdę dość proste, opis jest nieco trudny. Nie widzę elementu menu „Przenieś”, gdy próbuję paska zadań, albo jest przestarzały, albo coś w moim systemie uniemożliwia jego wyświetlenie. Zgadzam się, poza alt-spc, moja odpowiedź jest zasadniczo taka sama, ale pokazałem moją metodę dziesiątkom i zawsze było to w stylu „wow, to było łatwe, ciekawe, dlaczego tego nie spróbowałem” . Jak już wspomniano, moja odpowiedź pozwala na rozwiązanie oparte tylko na keybd. Istnieją również narzędzia do tego, ale czasami rozszerzenia powłoki mogą mieć niepożądane skutki ...
PeteG,
Zgadzam się jednak, że mniej więcej docieramy do tego samego miejsca, używając tej samej konstrukcji w systemie operacyjnym.
PeteG,
W tym celu możesz również użyć DisplayFusion. Ma ustawienie „przyciągania” bieżącego zadania / okna do bieżącego (prawdopodobnie głównego) monitora.
PeteG