如何在Windows 10中禁用粘滞角


114

看来Microsoft试图解决此问题,它是多显示器和屏幕四角的

在Windows 7中,显示器之间没有边界,并且只要我在显示设置中将它们的高度设置为相等,鼠标就可以在我的3台显示器之间在屏幕顶部自由移动。Windows 8引入了粘滞角。看到这个问题

Windows 10也遇到了麻烦。每个显示器的上角都有几个像素,鼠标无法跨过另一个显示器。一个人必须向下移动光标以避免此区域,以到达下一个显示。

该图像大致显示了Windows 10中不允许鼠标移动的区域,而Windows 7中允许鼠标移动的区域。

在此处输入图片说明

就个人而言,我在屏幕上方无限制地移动鼠标没有问题-我习惯于“瞄准” x,并方便地进行无限制的光标移动。像所有想在W8中禁用它的人一样,我想知道是否存在在W10中禁用它的方法。

编辑以解决可能的重复项:

虽然问题是相同的一个在这个问题,解决方案,以解决涉及编辑注册表键W8问题MouseCornerClipLength不W10工作,因为该注册表项中不存在W10。同样添加该键并设置该值不起作用。我搜索了整个注册表,但在另一个位置找不到它。W8解决方案中引用的节点中没有其他W10密钥是明显的替代。

编辑以解决注释中可能的解决方案

适用于Windows 8.1的harrymc的建议1建议2在Windows 10中不起作用。


11
这不仅与关闭窗口按钮有关,还与其他有关。例如,将窗口从一个显示移动到下一个显示。您过去曾经能够将显示直接跨过显示顶部拖动到另一个显示中。现在,您必须在拖动时将其向下移动,然后再向上移动。安装W10后,我昨晚整夜崩溃。我不敢相信更多的人没有抱怨:)
djv

1
因此,我不确定为什么将其添加为评论而不是答案。谢谢(你的)信息。
birdman3131 2015年

4
@harrymc尽管长期参加了Beta测试
djv

11
我只是想在我意外关闭应用程序时哭泣,以为Microsoft的某个程序员花了一些时间来实现这个愚蠢的功能,并且当人们想将所有精力集中在某个事情上时,我并没有想到人们会在一秒钟内单击X按钮。在另一个屏幕上的一个窗口。设计书籍将在将来讨论这一问题
Jean-Simon Brochu

1
@djv:您可以使用Win + Shift +箭头将应用程序从一个显示移动到另一个显示。它比拖动它们快得多。不过,Sticky Corners仍然很烂。
埃里克·杜米尼尔

Answers:


40

线程 如何在Windows 10中禁用死角? 来自Answers.microsoft.com对待这个相同的问题:

当将鼠标从左监视器移动到右监视器的左上方时,6像素角将抓住您的鼠标。

我在Windows 8.1中有类似的问题,并且将注册表中的MouseCornerClipLength从6更改为0,并禁用了任务栏和“开始”菜单属性中的“转角导航”。

无论如何在Win10中我找不到MouseCornerClipLength,角落导航完全禁用,添加相同的注册表项将无济于事。

微软支持工程师Vijay B在2015年6月4日的回答是:

我们知道此问题,目前正在调查中。请继续关注,我们将在其他信息可用时更新此线程。

如果遇到此问题的其他海报尚未通过Windows反馈应用程序提交,请这样做。本文 http://answers.microsoft.com/zh-CN/insider/forum/insider_apps-insider_feedback/how-to-share-feedback-on-windows-10-technical/5e501781-a580-43e3-8926-40ae19343805进行了说明使用Windows反馈应用程序。

看来,当前唯一的选择是等待将来的改进,或者让某些黑客提出正确的黑客方案。将您的声音添加到Windows反馈应用程序可能会有所帮助。

[ 编辑 ] 据说开源应用程序Non Stick Mouse可在多台显示器的情况下提供解决方案。开发人员指出:

它的作用是在移动窗口时将鼠标悬停在拐角以及屏幕边缘上。因此,它允许在屏幕上拖动窗口,而鼠标不会被Snap Assist劫持。
[...]
此应用程序不读取或写入任何驱动器,它不访问注册表或连接到Internet。

警告:在评论中已注意到,VirusTotal在最新版本的“不粘鼠标”中发现了恶意软件。


3
近三个月后。刚刚更新到Windows 10,这仍然是一个问题。感谢您指出我要投诉的地方。
Chaser324

2
请,如果您在“反馈应用程序”中提供反馈,则只需简单地对许多现有帖子中投票率最高的一个投票,而不是(或至少除了添加)创建另一个帖子。或添加一个新帖子并赞扬所有现有帖子(这是我所做的)。除了充分提高意识之外,我没有其他解决方法。
jinglesthula

16
2017
Keith

5
在2018年底仍然是一个问题,他们将永远不会解决它。
亚瑟·卡斯特罗

4
一年是2019年,仍然没有任何改善。
CustomX

24

我开发了一个应用程序来处理此问题,因为Microsoft显然似乎有意忽略它。您可以从这里获得:http : //www.jawfin.net/nsm


是的,有人注意到了!但是请保持关注,如果任何人需要此应用程序帮助或有任何改进建议,请发布在我的网站上,以便所有人都可以在一个地方看到它。干杯:)
乔纳森·巴顿

1
尽管在穿越具有不同分辨率的显示器时遇到了麻烦,但这种方法出奇地好。
isanae '16

@JonathanBarton您的应用程序在扫描中显示为病毒。有什么理由吗?当由MBAM扫描时,它也显示为可疑。
mbomb007 '18

嗨,@ mbomb007-在相关网站上,这里有很多评论颌骨.net / nsm,详细介绍了我对AV的所有乐趣。请阅读这些内容,以获取更多信息以及使您满意的应用程序清洁方式。干杯
乔纳森·巴顿

@JonathanBarton谢谢,我还没有检查评论。
mbomb007 '18

7

部分解决方案

  • 禁用“捕捉”
  • 不能解决整个问题,但是不那么严重。
  • 易做:在Windows 10中禁用“快照”。如果链接断开,请参见下面的详细信息。
  • 如果确实愿意,您可以实施一个完整解决方案的变通办法,但这是大量的工作,因为您实际上需要编写一个程序来完成它。帖子末尾的详细信息。

背景

我设置了6个监视器:

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

每当我将一个窗口从一个监视器移动到另一个监视器时,Windows 10都会检查是否要最大化它。此功能称为“快照”,似乎是有问题的,因为它经常阻止我将窗口从一个显示器移到另一个显示器。我对这个SuperUser问题感到沮丧。

禁用Snap确实对我有帮助。这也会自动禁用Aero晃动功能,我认为这是一种奖励。

程序

要禁用“捕捉”和“气动抖动”:

  1. 去:
    • “控制面板”
    • ->“所有控制面板项目”
    • ->“轻松访问中心”
    • ->“使鼠标更易于使用”。
  2. 选中“防止将窗口移到屏幕边缘时自动布置窗口”。
  3. 单击“确定”或“应用”。

结果

  • 现在,禁止将窗口从一个屏幕移动到另一个屏幕的“快照”。Windows可以自由移动。
  • 现在禁用了“气动抖动”,当一个窗口摇动时,它会导致所有窗口最小化。
  • 引起类似问题但仅在拐角处(而不是在所有边界处)的“粘性拐角”仍然是一个问题。据我所知,目前没有任何方法(2015-08-18)禁用粘滞角或进一步缓解其引起的问题。

解决方法

粘性角落有一种解决方法,但这并不有趣。要点是,您要创建一个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,这也将涵盖不在每个屏幕上四角边缘)。


这与我要达到的目标有什么关系?
2015年

@Verdolino:它极大地缓解了导致我发现此问题的问题,因此我认为这可能会帮助其他人。我添加了一个变通办法部分,详细介绍了如何制作WPF程序来解决“粘性角落”问题(如果您想走得更远)。但是可能要花一两个小时才能写出来。
2015年

1
如果解决了问题。但是您甚至说过“粘性拐角”,这仍然是一个问题,它引起类似的问题,但仅在拐角处(而不是在所有边界处)
2015年

我提供的“解决方案”禁用了Windows 10 Education x64上似乎遇到的类似“ Sticky Edges”的错误。此问题影响了所有边缘,而不仅仅是拐角。一旦实施,该问题就消失了,但是仍然存在更为有限的“粘滞角落”问题。变通解决方案通过从字面上检测鼠标何时被粘死角困住并将其以编程方式移动到下一个屏幕来解决“粘死角”问题。
2015年

2
我实际上确实为此编写了一个程序。极其快捷和肮脏,我甚至硬编码了我的拐角点-但如果需要的话,它可能会很友好!我仅发布信息是为了注意上述解决方法需要答案提供的更多工作。如果您只是将鼠标移到相邻显示器的下一个角,则粘滞角也会拾取该角-您必须将其移到当前显示器中远离角的位置(做到8像素)-然后将其移动到下一个显示器。您还必须休眠UI线程才能停止Win10重新抓取它-.-
Jonathan Barton

4

这也困扰了我。我在实现AutoHotkey中的解决方案方面颇为努力,该解决方案保留了所有主要的“快照”功能,同时允许您严格禁用在监视器之间的角落发生的鼠标“粘滞”。

解决方法:

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

  1. 安装自动热键
  2. 从上述存储库下载并运行win10-sticky-mouse.ahk

此处的关键是观察消息WM_MOUSEMOVE并使用它来预测鼠标的去向,然后跳过(跨轴到运动的主轴)刚好足以确保Windows不会[无]有效地抓住鼠标。

如果您仍然遇到问题,请尝试尝试一下,让我知道是否有帮助。任何问题或请求请求都非常欢迎!


1
此方法有效,并且没有被许多AV标记为病毒。VirusTotal
mbomb007

您可以使用,exe但我仍然建议您下载AutoHotkey并ahk直接加载脚本(只需双击);一般而言,这只是一个更安全的习惯。
chunk_split

3

本着乔纳森·巴顿(Jonathan Barton)所做贡献的精神,我开发了一个Windows C#命令行应用程序来处理此问题,并允许鼠标​​在多台显示器上平滑移动,并在最左和最右之间进行环绕监视器。请注意,此程序不需要“启发式”即可确定何时光标位于屏幕边缘附近,因此光标在边缘上的流动非常平滑。

  • MouseUnSnag-GitHub-您可以从源代码进行编译,也可以作为GitHub“发行版”提供一个可执行文件。

MouseUnSnag还解决了这个有关superuser.com的问题,该问题涉及光标卡在不同高度的显示器的边缘上:


感谢您提供的出色工具。使用起来很愉快。在实践中甚至比听起来更好。
Drew Noakes '18 -10-18

这对我有用,但Chrome在下载时将其检测为病毒。我仅使用内置的Windows AV,因此不确定Chrome是否只是委托给它。但是,在自述文件中有关于如何编译的说明,它们可以完美地工作。我没有意识到nuget有多容易,C#编译器有多小。在源文件中没有看到任何“有趣”的内容,因此对AV问题感到满意。但是,要永久使用,我需要不要从CLI运行它。
杰森·温内贝克

感谢您对被AV标记的警告。可能是因为EXE是“未签名的”,所以它可能显示为“未知的发行者”或类似名称。
戴尔

这很漂亮!比我的脚本更好(以上答案)。另外:对于难以置信的懒惰/愚蠢的人(像我一样),这是要下载的发行页面的链接:github.com/dale-roberts/MouseUnSnag/releases-ps您可以更新它,使其在启动时不包括控制台吗?
chunk_split

ps同时,我将在启动时启动它,然后使用RBTray将其最小化(我也在那里提交了一个请求,允许命令行选项在启动时最小化常规应用程序)
chunk_split

0

尝试使用应用程序Display Fusion。即使在Windows 10中,它也可以解决该问题。要查找的设置位于settings:Mouse Management:防止鼠标光标卡在未对齐的显示器边缘上。

像冠军一样工作!


在哪里可以获得此软件?请不要在评论中回复;编辑您的答案,使其更清晰,更完整。
斯科特,

找到了它:displayfusion.com。截至目前,它的家庭执照费用为35美元,但确实可以解决问题。
djv

0

我不确定这是否一直是最近刚刚实施的一种选择,但是我找到了解决方案,方法是进入
“设置”>“系统”>“多任务处理,
然后关闭快照”,方法是关闭“将窗口自动拖动到侧面或屏幕的召集者”

将关闭所有“快照设置”,
我从该站点的教程中发现了此设置:https : //www.tekrevue.com/tip/how-to-disable-snap-assist-windows-10/

视觉演练:

打开设置,然后单击系统

打开设置,然后单击系统

单击多任务并关闭“第一个快照”选项

单击多任务并关闭“第一个快照”选项


-1

这是Windows 8的一个功能,称为粘角(IIRC)。这是一个声称已通过注册表更改禁用它的人:

  1. 在注册表中,搜索:MouseCornerClipLength
  2. 将值设置为0(从6开始)
  3. 重复(此名称有多个钥匙,我不确定需要哪个钥匙)
  4. 重新开始

请注意,我目前尚无尝试的方法,因此,如果这不能解决您的问题,请告诉我,我将删除答案。


同样,我不在atm的情况下,但是回到家时,我会首先尝试一下。谢谢
djv

7
看起来很有希望,但在Windows 10中不起作用。请参见我的编辑。
djv 2015年

这个答案看起来像它属于这个问题是同一个,但为Win 8:superuser.com/questions/498576/...
jinglesthula

-2

临时修复。我回到了Logitech无线鼠标。我一直在使用Minicute左手鼠标,但是卡住了。到目前为止,Logitech M705鼠标还没有。罗技一定已经看到它的到来。


-3

我不知道这是否会帮助别人。但是,我只是拖动监视器编号将#1移至#2所在的位置,反之亦然。有效。而且,到目前为止(手指交叉)它还没有恢复到鼠标卡住的问题。祝好运。


1
但是,然后监视器将是错误的方式...?
djsmiley2k

-3

当“选择并重新排列显示”配置部分中的两个显示之间存在间隙时,Windows 10中似乎存在此问题。我能够通过将两个显示器彼此稍微移开来解决此问题,因此在视觉上它们之间没有缝隙。看例子

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.