Как отключить функцию Windows 7, которая максимизирует окно на весь экран при перемещении к краю экрана (но при этом должны работать сочетания клавиш)?


10

Я следовал этому совету: Как отключить автоматическое увеличение / изменение размера окна (аэросъемка), когда рядом с краем экрана?

Но он также отключает функцию, при которой, нажимая WinKey+ Left/Right Arrow, подгоните окна к половине экрана в направлении клавиши со стрелкой.

Есть ли способ контролировать их самостоятельно?


Я искал то же решение, и я считаю, что это не может быть сделано изначально. Насколько сложно Microsoft позволить пользователям легко настраивать эти параметры?
пользователь

1
Точно слишком много тривиальных вещей невозможно. Почему? Потому что MS понятия не имеет о юзабилити. Их последний Xbox One показывает это лучше всего. И они ожидают, что люди будут платить абсурдные суммы за их программное обеспечение.
Джоан Венге

Ответы:


3

Хотя не может быть способа сделать это через графический интерфейс, есть способ сделать это программно.

Функция, которую вы хотите, это SystemParametersInfo . Вы можете прочитать об этом в MSDN, если вы хотите, чтобы он имел все возможности (он может получить доступ к абсурдному количеству настроек), но вас заинтересуют SPI_SETDOCKMOVINGи SPI_SETSNAPSIZING.

SPI_SETDOCKMOVINGпереключает возможность привязывать окна, перетаскивая их за заголовки. Вы можете отключить его так:

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

SPI_SETSNAPSIZINGпереключает возможность привязывать окна, определяя их размеры, используя их верхнюю и нижнюю границы. Вы можете отключить его так:

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

Чтобы включить любой из них, просто сделайте тот же вызов с ненулевым номером для второго аргумента. Чтобы изменения не сохранялись после перезагрузки, уберите флаг SPIF_UPDATEINIFILE из последнего аргумента.

Чтобы обеспечить сохранение комбинаций клавиш, не отключайте AeroSnap на панели управления или в реестре .

Прилежный может заметить, что приведенные здесь аргументы не такие, как вы могли бы ожидать от документации. В частности, переключаются pvParam и uiParams. Это единственный способ заставить эту функцию работать на моем компьютере (под управлением Windows 8.1), поэтому я подозреваю, что в документации есть ошибка.


Результат выполнения этого кода с установленным SPIF_UPDATEINIFILE: superuser.com/a/1464761/128356 (позволяет просто применить эти изменения в реестре).
Герцог

2

Я искал это в прошлом, и я не верю, что есть способ сделать это в самой Windows. Однако существует сторонняя альтернатива. Во-первых, отключите аэроснимок по ссылке в вашем вопросе. Затем с помощью WindowsPad (специальной настройки скрипта AutoHotkey ) вы можете восстановить перемещение окон между экранами в настройке с несколькими мониторами, использовать привязку слева / справа и многое другое (привязка сверху, снизу, по середине и по углу). По умолчанию WindowsPad использует клавиши Win+ NumPad(из-за добавленной функциональности), но вы можете добавить функциональность клавиш со стрелками, подобными аэро-привязке, добавив следующее в [Hotkeys]раздел файла WindowsPad.ini:

# + Left = WindowScreenMove, Next
# + Right = WindowScreenMove, Пред.
#Left = WPM, -1, 0, 0,5, 1,0
#Right = WPM, +1, 0, 0.5, 1.0
#Up = MaximizeToggle
#Down = Восстановить

К сожалению, вы теряете возможность привязываться к 50% экрана, а затем восстанавливать исходное положение (поскольку оно фактически изменяет размер окна, а не использует аэросъемку). Но пока это единственный недостаток, который я нашел.


Демонстрация функций WindowsPad для угловых и нижних защелок:

WindowsPad Demo


2

Вы можете попробовать мою коллекцию инструментов Windows . Ниже приведены горячие клавиши для перемещения окон:

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

Июнь 2015

Поскольку код Google выводится из эксплуатации, я переместил код на github . На вики-странице есть некоторая справочная информация: rwin wiki


2

Следующее редактирование реестра позволяет получить именно то, что было задано :

Windows Registry Editor Version 5.00

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

(Вы можете сохранить его как файл .reg и запустить его. Требуется перезагрузка или повторный запуск.)

По сути, это две настройки, которые будут установлены, выполняя код в ответе @ gitbox.

Работает в Windows 7 - 10.


-1

Вы можете сделать это в реестре.

  1. Откройте regedit.exe
  2. Перейдите к HKEY_CURRENT_USER \Control Panel\Desktop
  3. Выберите поле WindowArrangementActive, дважды щелкнув по нему
  4. Установите значение в 0
  5. Перезапустите (выход из системы и снова может работать)

Находится здесь http://www.technorms.com/33660/how-to-disable-the-windows-snap-feature


Это отключает сочетания клавиш
Duke Nukem
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.