105

Похоже, Microsoft пыталась решить эту проблему с несколькими мониторами и углами экрана.

В Windows 7 нет границы между мониторами, и мышь может свободно перемещаться по верхней части экрана между моими 3 мониторами, при условии, что я установил их высоты в настройках дисплея. В Windows 8 введены липкие углы. Смотрите этот вопрос.

У Windows 10 есть и липкие углы. В верхних углах каждого дисплея есть несколько пикселей, где мышь не может перейти на другой дисплей. Нужно переместить курсор вниз, чтобы избежать этой области, чтобы перейти к следующему экрану.

На рисунке примерно показана область, в которой движение мыши не разрешено в Windows 10, но разрешено в Windows 7.

Лично у меня не было проблем с неограниченным движением мыши по верху моих экранов - я привык к "прицеливанию" по оси x и удобству неограниченного перемещения курсора. Как и всем людям, которые хотели отключить его в W8, мне интересно, есть ли способ отключить его в W10.

Изменить на адрес возможного дубликата:

Хотя проблема идентична проблеме в этом вопросе, решения для решения проблемы в W8, связанные с редактированием ключа реестра MouseCornerClipLength , не работают в W10, поскольку этот ключ реестра отсутствует в W10. Также добавление этого ключа и установка значения не работает. Я искал весь реестр и не мог найти его в другом месте. Никакие другие ключи W10 в узле, указанном в решении W8, не являются очевидными заменами.

Изменить, чтобы рассмотреть возможные решения в комментариях

Предложение harrymc 1 и предложение 2, которые работали для Windows 8.1, не работают в Windows 10.

10 ответов10

36

Тема Как отключить липкие углы в Windows 10? from answers.microsoft.com относится к этой же проблеме:

При перемещении мыши от левого монитора к верхнему левому углу правого монитора 6-пиксельный угол захватит вашу мышь.

У меня похожая проблема в Windows 8.1, и поменял MouseCornerClipLength в реестре на 0 из 6 и отключил Угловую навигацию в панели задач и свойства меню «Пуск».

Во всяком случае, в Win10 я не могу найти MouseCornerClipLength, угловая навигация вообще отключена, и добавление одних и тех же ключей реестра не поможет.

4 июня 2015 года инженер службы поддержки Microsoft по имени Виджай Б ответил так:

Мы знаем об этой проблеме, и в настоящее время она расследуется. Следите за обновлениями, и мы обновим эту тему, когда появится дополнительная информация.

Если другие постеры, испытывающие это, не отправили это через приложение Windows Feedback, сделайте это. Эта статья http://answers.microsoft.com/en-us/insider/forum/insider_apps-insider_feedback/how-to-share-feedback-on-windows-10-technical/5e501781-a580-43e3-8926-40ae19343805 объясняет с помощью приложения Windows Feedback.

Похоже, что в настоящее время вы можете только ждать улучшения в будущем или чтобы какой-то хакер придумал правильный взлом. Добавление вашего голоса в приложение Windows Feedback может помочь.

[ EDIT ] Приложение с открытым исходным кодом Non Stick Mouse, как говорят, предлагает решение для нескольких мониторов. Разработчик заявляет:

То, что он делает, это наводит курсор мыши на торчащие углы, а также края экрана при перемещении окон. Таким образом, он позволяет перетаскивать окна через экраны без захвата мыши с помощью Snap Assist.
[...]
Это приложение не читает и не записывает на диск, не имеет доступа к реестру и не подключается к Интернету.

Предупреждение: в комментариях было отмечено, что virustotal обнаруживает вредоносное ПО в последней версии "антипригарной мыши".

21

Я разработал приложение для решения этой проблемы, так как Microsoft, похоже, намерена игнорировать его. Вы можете получить его здесь: http://www.jawfin.net/nsm

7

Частичное решение

  • Отключить "Snap"
  • Не решает проблему в целом, но делает ее намного менее серьезной.
  • Легко сделать: отключить "Snap" в Windows 10. Смотрите подробности ниже, если ссылка не работает.
  • Вы можете реализовать обходной путь для полного решения, если вы действительно этого хотите, но это большая работа, так как вам буквально потребуется создать программу для этого. Подробности в конце этого поста.

Фон

У меня есть 6 мониторов:

                Monitors
   Top row:  [#1] [#2] [#3]
Bottom row:  [#4] [#5] [#6]   (eye-level; #5 is main display)

Всякий раз, когда я перемещал окно с одного монитора на другой, Windows 10 проверяла, хочу ли я увеличить его. Эта функция, называемая "Snap", кажется, содержит ошибки, потому что она часто мешала мне перемещать окно с одного дисплея на другой. Я нашел этот вопрос SuperUser, хотя расстроен по этому поводу.

Отключение Snap действительно помогло мне. Это также автоматически отключает Aero Shake, который я считаю бонусом.

Процедура

Чтобы отключить "Snap" и "Aero Shake":

  1. Идти к:
    • "Панель управления"
    • -> "Все элементы панели управления"
    • -> "Центр Простоты Доступа"
    • -> "Сделайте мышь проще в использовании".
  2. Установите флажок "Запретить автоматическое расположение окон при перемещении к краю экрана".
  3. Нажмите "ОК" или "Применить".

Результаты

  • "Snap", который блокировал перемещение окон с одного экрана на другой, теперь отключен. Окна могут свободно двигаться.
  • "Aero Shake", который заставляет все окна сворачиваться при встряхивании одного окна, теперь отключен.
  • "Липкие углы", которые вызывают аналогичную проблему, но только на углах (и не на всех границах), все еще являются проблемой. Насколько я могу судить, в настоящее время (2015-08-18) нет способа отключить Sticky Corners или еще больше смягчить проблемы, которые он вызывает.

Временное решение

Для Sticky Corners есть обходной путь, но это не весело. Суть в том, что вы создаете программу WPF, которая помещает маленькие черные квадраты в угол каждого из ваших дисплеев, а затем, когда программа обнаруживает движение мыши над этими квадратами, она переключает вашу мышь на следующий экран, как и предполагалось. Технически вы, вероятно, захотите настроить форму "квадратов" так, чтобы она соответствовала области, на которую фактически влияют "липкие углы" (вероятно, L-образная форма?).

В принципе:

  1. Загрузите Visual Studio, например сообщество Visual Studio 2015.
  2. Сделайте проект WPF.
  3. Пусть приложение WPF сделает Window на каждой странице. Для каждого Window:

    this.Topmost = true;
    this.AllowsTransparency = true;
    this.Background = Brushes.Transparent;
    this.WindowState = WindowStates.Maximized;
    Border border = new Border();
    this.Content = border;
    border.Background = Brushes.Transparent;
    border.BorderBrush = Brushes.Black;
    border.BorderThickness = new Thickness(5);
    border.MouseMove += HandleThisByMovingTheMouseToTheCorrectScreen();
    
  4. Напишите HandleThisByMovingTheMouseToTheCorrectScreen() чтобы переместить мышь в нужное место, избегая прилипания липких углов.

  5. Если вы хотите придать фантазии вместо Border , создайте Grid с отдельным Canvas для каждого угла (в отличие от Border , которая также покрывала бы края, не являющиеся углами на каждом экране).

4

Это также прослушало меня. Я попробовал реализовать решение в AutoHotkey, которое сохраняет все основные функции "привязки", в то же время позволяя вам строго отключать "залипание" мыши, которое происходит в углах между мониторами.

Временное решение:

https://github.com/patricknelson/win10-sticky-mouse

  1. Установить AutoHotkey
  2. Загрузите и запустите win10-sticky-mouse.ahk из вышеупомянутого репозитория .

Ключевым моментом здесь является просмотр сообщений от WM_MOUSEMOVE и использование их для прогнозирования того, куда будет перемещаться мышь, а затем перепрыгивание (поперечная ось к основной оси движения) достаточно для того, чтобы Windows не [ловко] не ловила вашу мышь.

Если у вас все еще есть проблемы, пожалуйста, попробуйте сделать это и дайте мне знать, если это поможет. Любые вопросы или просьбы тянуть очень приветствуются!

3

В духе вышеупомянутого вклада Джонатана Бартона я разработал небольшое приложение командной строки для Windows C #, чтобы справиться с этой проблемой и позволить мыши плавно перемещаться по нескольким мониторам, а также перемещаться между крайним левым и правым краем. мониторы. Обратите внимание, что эта программа не требует "эвристики", чтобы определить, когда курсор находится у края экрана, поэтому курсор очень плавно течет по краям.

  • MouseUnSnag - GitHub - Вы можете скомпилировать его из исходного кода, или есть исполняемый файл, предоставляемый как "релиз" GitHub.

MouseUnSnag также обращается к этому связанному вопросу superuser.com о застревании курсора на краях мониторов различной высоты:

0

Попробуйте использовать приложение Display Fusion. Это решает проблему даже в Windows 10. Требуемый параметр находится в настройках: Управление мышью: предотвращение зацепления курсора мыши на невыровненных краях монитора.

Работает как чемпион!

-1

Это была особенность Windows 8, называемая липкими углами (IIRC). Вот кто-то, кто утверждает, что отключил его с изменением реестра:

  1. В реестре поиск: MouseCornerClipLength
  2. Установите значение 0 (из 6)
  3. Повторите (есть более одного ключа с этим именем, я не уверен, какие из них необходимы)
  4. Запустить снова

Обратите внимание, что в данный момент я не в состоянии испытать это, поэтому дайте мне знать, если это не решит вашу проблему, и я удалю свой ответ.

-2

Я не знаю, поможет ли это другим. Но я просто перетащил номера монитора, чтобы переместить # 1 туда, где был # 2, и наоборот. Это сработало. И до сих пор (скрестив пальцы) это не вернулось к проблеме залипания мыши. Удачи.

-2

Эта проблема возникает в Windows 10, когда между двумя дисплеями в разделе конфигурации «Выбор и перестановка дисплеев» имеется разрыв . Я смог решить проблему, слегка сместив два дисплея друг к другу, чтобы между ними не было визуального зазора. См пример

-2

Временное исправление. Я вернулся к своей беспроводной мыши Logitech. Я использовал мышь Minicute для левой руки, но она застряла. Пока что мыши Logitech M705 нет. Логитек, должно быть, предвидел это.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .