2009-10-10 08:41:54 +0000 2009-10-10 08:41:54 +0000
278
278

Jak przenosić okna, które otwierają się poza ekranem?

Mam ustawiony podwójny monitor i ostatnio bawiłem się ustawieniami pozycjonowania, a niektóre z moich aplikacji pojedynczego okna mają tę zaletę, że zachowują miejsce, w którym zostały ostatnio zamknięte, a otwierają się w tej samej pozycji później. Niestety, to teraz umieszcza je poza widzialnym obszarem moich ekranów!

Czy jest jakiś sposób na zmuszenie konkretnego okna do wejścia w widzialny obszar?

Odpowiedzi (21)

442
442
442
2009-10-10 08:53:20 +0000

Używam tego podejścia:

  • Użyj klawiszy Alt+Tab, aby przełączyć się do aplikacji wyłączonej z ekranu.
  • Wciśnij klawisze Alt+SPACE, aby wywołać menu systemowe (nie będziesz go widział, ponieważ jest wyłączony z ekranu)
  • Wciśnij R, aby wybrać opcję menu “Restore”, aby upewnić się, że okna nie są zmaksymalizowane (nie możesz ich przesunąć, jeśli są zmaksymalizowane)
  • Wciśnij ponownie klawisze Alt+SPACE, następnie M, aby wybrać opcję menu “Move”.
  • Wciśnij jeden z klawiszy strzałek, aby zainicjować ruch.
  • Teraz po prostu użyj myszki, aby umieścić okno tam, gdzie chcesz.

Jeśli używasz nieangielskiej wersji Windows, wybór menu “R” i “M” będzie prawdopodobnie inny.

202
202
202
2009-10-15 14:57:50 +0000

Dla Windows 7 i późniejszych użytkowników:

+Shift+← lub → przesunie wybrane okno na monitor w tym kierunku.

17
17
17
2015-11-24 21:09:19 +0000

W systemie Windows 10, aby użyć starej metody przesuwania okna z kursorem, musisz mieć wciśnięty klawisz Shift po otwarciu menu kontekstowego z paska zadań.

Info z How to Geek

13
13
13
2009-10-10 08:50:28 +0000

Możesz kliknąć prawym przyciskiem myszy na przycisk programu na pasku zadań, a następnie kliknąć “Przesuń”. Teraz możesz użyć przycisków strzałek na klawiaturze, aby przesunąć okno, gdzie możesz je zobaczyć. Wymaga trochę ruchu, czasami okna “utknęły” na krawędziach monitorów. Możesz również spróbować użyć myszki, ale klawiatura jest nieco bardziej niezawodna, jeśli nie widzisz jeszcze okna ;-)

9
9
9
2009-10-10 08:52:48 +0000

Zanim pojawił się pasek zadań, naprawiłem ten problem z Alt+Space, aby wywołać menu okna, a następnie M dla funkcji Przesuń. Klawisze strzałek pozwalały wtedy na przeniesienie okna z powrotem na ekran.

9
9
9
2009-10-10 09:20:36 +0000

Innym szybkim sposobem jest kliknięcie r na pasku zadań i wybranie opcji Cascade Windows.

6
6
6
2015-01-09 00:23:52 +0000

Wpadłem na ten problem, i absolutnie nic mi nie wyszło. Więc poszedłem do Task Managera i kliknąłem prawym przyciskiem myszy na program, który był wyłączony z ekranu. Przełączenie na nie zadziałało, ani nie doprowadziło do końca. Uwaga, to było statyczne okno, więc maksymalizacja była niedostępna za pośrednictwem paska zadań. Ale możesz je zmaksymalizować za pomocą Task Managera, a to sprowadza je do twojego głównego ekranu! Stamtąd możesz zrobić z tym oknem wszystko co trzeba. :)

5
5
5
2009-10-10 08:57:46 +0000

Edycja: Zaprzestano zgodnie z komentarzami

Aby szybko rozwiązać ten problem w przyszłości, i aby umieścić aplikacje na podwójnym ekranie mogę polecić Winsplit Revolution . Ogranicza to rozwiązanie tego problemu do wciśnięcia klawisza Ctrl-Alt i klawisza numer-pad, aby umieścić okno z powrotem dokładnie tam, gdzie chcesz.

3
3
3
2011-04-22 18:57:29 +0000

Właśnie natknąłem się na ten problem z Git GUI na Windows 7, który jest oparty na Tk i jako taki ma tendencję do dziwnych usterek czasami na Windows. Próbowałem uderzyć w Alt-Space i użyć komendy “przenieś”, żeby go przyciemnić z powrotem na widok, ale wydawało się, że utknął. Maksymalizacja przyniosłaby go z powrotem, ale jeśli umieścić go z powrotem w trybie okienkowym to zniknie ponownie.

Co zrobiłem to zmaksymalizować go, chwycić pasek tytułu, i przeciągnij go na bok ekranu tak, że Aero Snap dopasował go do połowy rozmiaru ekranu i umieścić go w trybie okienkowym. Następnie przeciągnąłem go z boku ekranu i odzyskałem nad nim kontrolę.

3
3
3
2009-10-10 13:37:33 +0000

Używam sprytnego, małego narzędzia o nazwie Shove-it , które po prostu sprawdza, czy jakieś okno znajduje się poza krawędzią ekranu i przenosi je z powrotem na ekran. Jest to starożytne oprogramowanie (i dowodzi tego strona główna), ale działa na wszystkich wersjach Windows.

1
1
1
2013-02-14 21:37:39 +0000

Możesz użyć NIRSOFT WinLister. Zauważyłem, że metoda “Move” nie jest dostępna na Windows 7, gdy używasz klasycznego motywu, a różne inne metody zawiodły, więc zamieszczam moją alternatywę “IF all else fails”.

  1. Pobierz aplikację WinLister tutaj .

  2. Uruchom WinLister jako Administrator i wybierz okno, które chcesz przenieść z powrotem na Ekran. Nie uruchomienie jako administrator nie da aplikacji możliwości przenoszenia okien za Ciebie.

  3. Kliknij prawym przyciskiem myszy i wybierz “Center Selected Windows” i gotowe!

Screenshots tutaj .

1
1
1
2017-06-20 17:17:22 +0000

Dla każdego, kto zna się na PowerShell'u, spróbuj tego:

  • Skopiuj i wklej poniższy kod do sesji PowerShell'a ISE.
  • Hit Run
  • Wciśnij ALT+TAB / cokolwiek, aby uaktywnić okno off-screenowe
  • Odczekaj kilka chwil (5 sekund od uderzenia RUN na skrypcie)
  • Okno powinno się teraz pojawić.

Jeśli okno jest oknem głównym, zostanie ono przeniesione do lewego górnego rogu ekranu.

Jeśli okno jest oknem dziecięcym innego programu, jego lewy górny róg zostanie wyrównany do lewego górnego rogu okna rodzicielskiego.

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"    
}

Oryginalny kod tutaj: https://gist.githubusercontent.com/JohnLBevan/1593bbb860c2d2af436a1c9414e8adfa/

1
1
1
2014-02-18 18:27:26 +0000

Wybierz okno (np. za pomocą Alt+Tab). Następnie przytrzymaj Alt+F7 i przenieś okno z powrotem do widoku za pomocą klawiszy strzałek. Gotowe.

Czasami trudno jest na oślep dowiedzieć się, gdzie znajduje się ukryte okno (a więc jak je przesunąć w kierunku ekranu). Pomocne mogą być animacje podczas wyboru okna. Ze względu na moją konfigurację (od czasu do czasu używam drugiego ekranu na górze ekranu mojego laptopa), okna, które pojawiają się poza ekranem są zazwyczaj poniżej. Przytrzymanie Alt+F7+Up powoduje, że są one widoczne.

1
1
1
2016-10-21 22:25:05 +0000

W niektórych przypadkach, pomimo posiadania wielu ekranów w zdalnej lokalizacji, użytkownik może nie mieć dostępu do nich z własnej lokalizacji. Polecenia klawiszy nie będą działać, ponieważ zostałeś zablokowany poza widokiem, który nie znajduje się na Twoim ekranie.

W tym przypadku, jeśli możesz otworzyć dodatkowe instancje aplikacji, zrób to. Kilka pierwszych instancji prawie na pewno pojawi się na pasku zadań jako jeszcze więcej fantomowych okien. Nie przestawaj tego robić. W końcu zaczną one wypełniać widok główny. Następnie użyj ikony paska zadań, aby kliknąć prawym przyciskiem myszy i zamknąć instancje off-screenowe. Gdy NIE ma otwartych żadnych instancji pozaekranowych, zamknij te, które znajdują się na ekranie głównym. Następnym razem, gdy otworzysz tę aplikację, pojawi się ona na ekranie głównym, a nie “poza kamerą”.

1
1
1
2010-05-28 16:27:46 +0000

Miałem ten sam problem z winampem. Jedyne (niezadowalające) rozwiązanie, jakie znalazłem do tej pory: zmiana rozdzielczości ekranu na inną i z powrotem

Thomas

0
0
0
2017-06-28 01:10:28 +0000

Można również użyć UltraMon (non-free, Windows, GUI), aby skonfigurować skrót klawiaturowy do przenoszenia okna do następnego lub poprzedniego monitora.

0
0
0
2013-11-16 19:12:31 +0000

Umieść kursor na pasku zadań…kliknij prawym przyciskiem myszy wybierz polecenie Pokaż okno obok siebie…spowoduje to pojawienie się okna na ekranie..a na końcu ponowne pojawienie się kursora na pasku zadań kliknij prawym przyciskiem myszy wybierz opcję Cofnij okno obok siebie.

0
0
0
2018-04-02 22:01:57 +0000

Napisałem narzędzie o nazwie Borderline , które po uruchomieniu automatycznie przenosi okna poza ekran z powrotem na ekran. Musisz go uruchomić, kiedy tego potrzebujesz (działa najlepiej, jeśli przypiszesz mu skrót klawiszowy lub umieścisz go w menu startowym), ale oznacza to również, że nie zawsze działa w tle.

0
0
0
2019-02-24 14:24:24 +0000

Czasami, to rozwiązanie:

  • Kliknij WinKey + P
  • Wybierz do Extend lub inną opcję, a wszystkie okna będą kaskadowane. Przenieś żądane okno do ekranu głównego.
0
0
0
2017-06-28 01:14:15 +0000

Z Przesuń okno na dół/na górę monitora ze skrótem na Windows przez Tymric :

Napisałem skrypt AHK.

Użycie:

Win + Alt + Arrow: Przesuń aktywne okno na monitor, którego kierunek wskazuje strzałka. Zauważ, że może to spowodować przesunięcie okna poza ekran, jeśli spróbujesz wyjść z monitora 2 w górę lub z monitora 3 w konfiguracji. Zaktualizuję go w przyszłości.

Win + Alt + Number: Przenieś aktywne okno na dany numer monitora

#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
-1
-1
-1
2014-08-27 16:50:56 +0000

Jak przesuwać okna, które otwierają się poza ekranem?

Tymczasowo obniż rozdzielczość ekranu, chwyć górny pasek za pomocą myszy i przesuń środek. Poczekaj, aż system automatycznie przywróci rozdzielczość.

  1. DeskTop -> Rozdzielczość ekranu
  2. Wybierz monitor, zmień rozdzielczość na niższą od aktualnie ustawionej.
  3. System pokaże nową rozdzielczość, zapyta, czy chcesz ją zachować czy przywrócić w ciągu 30 sekund.
  4. W ciągu 30 sekund złap za okno i przesuń je do środka.
  5. Poczekaj, aż czas się zatrzyma i automatycznie powróci.

Okno przesunięte…