Jak wyłączyć funkcję systemu Windows 7, która maksymalizuje okno do pełnego ekranu po przeniesieniu na krawędź ekranu (ale nadal działają skróty klawiaturowe)?

10

Postępowałem zgodnie z tą radą: Jak wyłączyć automatyczne maksymalizowanie / zmianę rozmiaru okna (aero-Snap), gdy zbliżasz się do krawędzi ekranu?

Ale wyłącza również funkcję, w której naciskając WinKey+ Left/Right Arrow, dopasuj okna do połowy ekranu w kierunku klawisza strzałki.

Czy istnieje sposób, aby kontrolować je niezależnie?

Joan Venge
źródło
Szukałem tego samego rozwiązania i uważam, że nie można tego zrobić natywnie. Jak trudne jest dla Microsoft umożliwienie użytkownikom łatwego dostosowywania tych ustawień?
użytkownik
1
Dokładnie zbyt wiele trywialnych rzeczy nie jest możliwych. Dlaczego? Ponieważ stwardnienie rozsiane nie ma pojęcia o użyteczności. Ich najnowszy Xbox One pokazuje to najlepiej. I oczekują, że ludzie zapłacą absurdalne kwoty za swoje oprogramowanie.
Joan Venge

Odpowiedzi:

3

Chociaż może nie być sposobu na to za pomocą GUI, istnieje sposób, aby to zrobić programowo.

Wymagana funkcja to SystemParametersInfo . Możesz przeczytać o tym na MSDN, jeśli chcesz mieć pełną możliwość (ma dostęp do absurdalnej liczby ustawień), ale będziesz zainteresowany SPI_SETDOCKMOVINGi SPI_SETSNAPSIZING.

SPI_SETDOCKMOVINGprzełącza możliwość przyciągania okien poprzez przeciąganie ich za paski tytułowe. Możesz to wyłączyć w następujący sposób:

SystemParametersInfo(SPI_SETDOCKMOVING, 0, NULL, SPIF_SENDCHANGE | SPIF_UPDATEINIFILE)

SPI_SETSNAPSIZINGprzełącza możliwość przyciągania okien, zmieniając ich rozmiar przy użyciu górnej i dolnej krawędzi. Możesz to wyłączyć w następujący sposób:

SystemParametersInfo(SPI_SETSNAPSIZING, 0, NULL, SPIF_SENDCHANGE | SPIF_UPDATEINIFILE)

Aby włączyć ponownie, po prostu wykonaj to samo połączenie z niezerowym numerem dla drugiego argumentu. Aby zmiany nie utrzymywały się po ponownym uruchomieniu, usuń flagę SPIF_UPDATEINIFILE z ostatniego argumentu.

Aby zachować skróty klawiaturowe, nie wyłączaj AeroSnap w Panelu sterowania lub rejestrze .

Sumienny może zauważyć, że przedstawione tu argumenty nie są tym, czego można się spodziewać po dokumentacji. W szczególności pvParam i uiParams są przełączane. Jest to jedyny sposób, w jaki znalazłem, aby ta funkcja działała na moim komputerze (z systemem Windows 8.1), więc podejrzewam błąd w dokumentacji.

gitbox
źródło
Wynik wykonania tego kodu z zestawem SPIF_UPDATEINIFILE: superuser.com/a/1464761/128356 (umożliwia zastosowanie tych zmian w rejestrze).
Duke Nukem
2

Szukałem tego w przeszłości i nie sądzę, aby istniał sposób na to w samym systemie Windows. Istnieje jednak alternatywa strony trzeciej. Najpierw wyłącz przystawkę Aero zgodnie z linkiem w swoim pytaniu. Następnie za pomocą WindowsPada (specjalna konfiguracja skryptu AutoHotkey ) możesz przywrócić przenoszenie okien między ekranami w konfiguracji z wieloma monitorami, użyć przyciągania w lewo / w prawo i więcej (przyciąganie w górę, w dół, w środku i w rogu). Domyślnie WindowsPad używa klawiszy Win+ NumPad(ze względu na dodatkową funkcjonalność), ale można dodać funkcjonalność klawiszy strzałek przypominających zatrzaski, dodając następujące elementy do [Hotkeys]sekcji pliku WindowsPad.ini:

# + Lewo = WindowScreenMove, Dalej
# + Right = WindowScreenMove, Prev
# Lewy = WPM, -1, 0, 0,5, 1,0
#Right = WPM, +1, 0, 0,5, 1,0
#Up = MaximizeToggle
#Down = Przywróć

Niestety, tracisz zdolność przyciągania do 50% ekranu, a następnie przywracania do pierwotnej pozycji (ponieważ faktycznie zmienia rozmiar okna, nie używając przyciągania Aero). Ale jak dotąd jest to jedyny minus, jaki znalazłem.


Demonstracja narożnych i dolnych funkcji WindowsPada:

Demo WindowsPad

techturtle
źródło
2

Możesz wypróbować moją kolekcję narzędzi systemu Windows . Oto klawisze skrótów do przenoszenia okien:

Win+Array: Move the active window based on other visible windows. This allows for fast window alignment.
Shift+Win+Array: Move the left-up corner of the active window.
Alt+Win+Array: Move the right-bottom corner of the active window.
Ctrl+Win+Array: Dock the active window
Alt+F9: Minimize the active window
Alt+F10: Toggle maximize the active window

Czerwiec 2015

Ponieważ kod Google jest wycofywany z użycia, przeniosłem go do github . Strona wiki zawiera informacje pomocy: rwin wiki

Codism
źródło
2

Następująca edycja rejestru pozwala uzyskać dokładnie to, o co poproszono :

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Control Panel\Desktop]
"DockMoving"="0"
"SnapSizing"="0"

(Możesz zapisać to jako plik .reg i uruchomić. Wymagane jest ponowne uruchomienie lub ponowne zalogowanie).

W rzeczywistości są to dwa ustawienia, które zostałyby ustawione, wykonując kod w odpowiedzi @ gitbox.

Działa w systemie Windows 7-10.

Duke Nukem
źródło
-1

Możesz to zrobić w rejestrze.

  1. Otwórz regedit.exe
  2. Nawigować do HKEY_CURRENT_USER \Control Panel\Desktop
  3. Wybierz pole WindowArrangementActive, klikając je dwukrotnie
  4. Ustaw wartość na 0
  5. Uruchom ponownie (wylogowanie i ponowne włączenie może działać)

Znalezione tutaj http://www.technorms.com/33660/how-to-disable-the-windows-snap-feature

grgrssll
źródło
To wyłącza skróty klawiaturowe
Duke Nukem