Use this application to disable or bypass the sticky corners in Windows 10 & 11 for dual displays or multiple monitors. What it does is hop the mouse over the sticking corners, as well as the screen edges when moving windows. Thus it allows the dragging of windows through screens without your mouse getting hijacked by the Snap Assist.

The Hot Corners and Snap Assist still work, but now only when you want them to.

Note: A user has reported this app got falsely flagged as a game cheating app – which may cause issues for any Blizzard or Activision games, such as CoD.

Latest Version released on 15th of June, 2020.

Here is the actual application itself if you wish to save it directly and run it whenever you wish: –
Click to download Non-stick mouse
VirusTotal (0 out of 89)
CRC32: FCF41546
CRC64: 672CF71CCA25A80E
MD5: 941787243c32bf7a9fe5a2da23a5835e
SHA256: D16B4BBE30192E7D5D0D2D9BE94B845A92ECCE2E973E63975F5DA55FA5DDC092
SHA1: 8705456FF39F4E0044A8FBA68645AE76A0A33C00
BLAKE2sp: 7FCCE3B5C8956150B356782321D1059A94F9EEECABC0119700A38BB93835713A

I’ve been asked for an installer so it can run automatically on boot – so here it is, an installer: –
Click to download NSM setup
VirusTotal (0 out of 89)
CRC32: 23505E1E
CRC64: 01889D7B3DE77A74
MD5: e917df8abe39293711bb1802067b0acf
SHA256: 4E40F24D7ED551572678BE2F77B0F02F04D2E09FE9F3AED442CBB295E3123874
SHA1: 4E40F24D7ED551572678BE2F77B0F02F04D2E09FE9F3AED442CBB295E3123874
BLAKE2sp: D79D5DA65BD2157CA19851866839F968CB20CE6176FB3EF323615FFAA7CC30B6

And for your peace of mind the full source code written in Delphi, 3 files on GitHub.

This application does not read or write to any drive, it does not access the registry or connect to the Internet.
I am only sharing this as I took the time to write it and I notice many people are annoyed by these Microsoft “features”.

It hides its window – so terminate it use the Task Manager. It is not designed to be overly clever, it does not have a notification tray icon.
If you want it to run on start up make a shortcut to where you have saved it in the start up folder, or use the installer!

If it is does not work at all please let me know and I will try to fix it when I have time.

It won’t fire when the active/topmost window belongs to a process which is running with privileges elevated higher than what NonStickMouse itself is running with.

In an effort to minimise misfires this take parameters of when to fire: –
“corners” – only fires when in a corner (thus dragging a window across screens will stick).
“lag” – a delay between firing the hop. The default is 500 milliseconds but that can be overwritten by putting a value after the word lag.

These parameters can be affected by being embedded in the filename itself, thus renaming “NonStickMouse.exe” to “NSM_Corners_Lag_200.exe” will activate both, with a delay of 200ms.ย  Use as required.

Subsequently I have also developed a debug version: –
(Consequently, due to the mindless stupidity of virus-scanners, of which I’m not even going to bother to try to counter, I took it off my site.ย  If you need this app to help diagnose your issue please let me know and I can make it available for you.)
This has a User Interface showing the screen dimensions and offsets of each monitor, the mouse tracking, and the values it was at when the last hop was fired. This application will also hop the mouse so for complete accuracy please terminate NonStickMouse.exe when using it.

You may choose to compile this yourself for your own sense of security – in which case follow the instructions here: –
https://www.jawfin.net/lazarus

Developed by Jonathan Barton

As has been requested on numerous occasions, here is a donate button!

Just put whatever you like in the Price per item box ๐Ÿ™‚

Bitcoin BTC: 1B28E1adNTUMsmgpg2ijG1rSb9xScSXgcy
Ethereum ETH: 0x6d9b0bee0ac389444839f2e5c682ca09dc74c7a0
(For any other coins just make a request for a wallet address.)This site also supports Brave Rewards from the Brave browser, so you can use that button on that browser.

Disclaimer: Jonathan Barton is not responsible for any damage or presumption of damage caused by this application. All information here is to be considered advice of which you may chose to act or not act on; this includes compiling the application yourself. As one guy said, you received free, give free – this application cannot be repackaged and resold for commercial gain. You may contact me if you see an opportunity for this. Consider this paragraph as the End User License Agreement – which can be changed at any time without notice.


Comments

Non Stick Mouse for Windows 10 & 11 — 660 Comments

  1. In response to the question: How to make it start automatically: –
    Edit: Save the actual .exe in the start-up folder, or,
    Edit: Use the installer, or…

    I didnโ€™t want my app writing to the hard-drive as I donโ€™t want it to be considered a security threat in any way! So to have it start automatically you need to manually add a short-cut in your start up folder. Instead of trying to explain it all here I will just provide a link to show it: โ€“
    http://www.howtogeek.com/208224
    Not surprisingly the link for this information from Microsoft themselves is broken: โ€“
    http://windows.microsoft.com/en-au/windows/run-program-automatically-windows-starts
    Although that is the published reply from a Google search of: โ€“
    http://www.google.com/search?q=how+to+make+a+program+run+automatically+at+startup+windows+10
    Typical, hey?
    Cheers
    Jonathan
    Edit: Just reading through that HowToGeek article they have a *very* long-winded way of creating a shortcut on the desktop. All you need to do is right-click the application, on that menu click โ€œSend Toโ€ so it opens the sub-menu, and choose โ€œDesktop (create shortcut)โ€. If you donโ€™t have explorer open in the folder where the application is, use their way!

  2. Great App!

    One bug, it doesn’t detect the cursor at the top / bottom of the screen for multiple monitors above / below each other.

    Thanks!

    • I admit I use side-to-side screens so am less familiar with its behavior vertically. I did test it though by stacking the screens vertically – so are you seeing this as you are dragging a window from one display to another (Snap Assist) or is it getting stuck in the corners (Hot Corner) ?

    • Aha, fixed it! It was in the bottom-left and bottom-right corners of the top screen and moving the mouse down. My code had a greater-than sign instead of a less-than sign, a simple mistake which could be made by any deranged programmer!! If you download the latest version it should be good now. Please let me know if it isn’t!

      • This is still happening to me when monitor 2 is above monitor 1, but not when monitor 2 is below monitor 1. In other words, still getting stuck in this configuration:

        [—–]
        [–2–]
        [_____]
        [—–]
        [–1–]
        [_____]

        When I’m trying to move the mouse to monitor two, the mouse gets stuck at the top of monitor one, which is positioned one monitor.

    • Yea, no worries James. What I do is poll the mouse’s position about 100 times a second – that may seem a lot but if it was any less you’d really notice the lag between the switch. I then look to see where the mouse is positioned relative to the screen it is on, like, if its a corner or on an edge. I then look at the position it was in last (I just store that from the previous poll) and thus determine which direction it was moving in. If it just moved into the corner I then check to see if there is another screen on the other side of that corner/edge, and if so I pop it over. I also freeze the UI thread for 10ms, just so Windows doesn’t snatch it back into the corner (it really does, even though I use code to place the mouse, Win10 then places the mouse back into the corner). That’s pretty much it ๐Ÿ™‚

  3. It doesn’t work very well with a setup where the monitors are diagonally connected. Overall, it’s a nice little hack, but it’s not really a good sollution. There must be a way to really shut down the sticky corners, but for now I guess this helps many, just not me.

    • I know what to do to make this work for that situation – I agree, it’s less kind on diagonals – but I know how to fix that and will do so now. Judging by your bogus email you won’t know I’ve done this, but the next person will ๐Ÿ™‚

  4. Latest update. Now smoothly handles moving between monitors which are placed diagonally. Note this application does not automatically upgrade itself – you have to download the latest version, terminate the instance already running, replace that executable and re-run it. Or, use the installer!

  5. Thanks for the fast reply and fix, but my Avast is going crazy over your file now, and claiming that it’s infected with “Drep”. I’m sure it isn’t, and as an old assembly hacker, I know exactly why this crap happends. But I just wanted to inform you. Sadly AV programs usually seems to hate well coded software. ๐Ÿ™

    PS. I changed my email to a less fake one. I’m just very restrictive where I write it. ๐Ÿ™‚

      • Cool, not often one meets an old Delphi coder. It was ages since I did anything in it, but it was being both an old assembly and a pascal guy, Delphi seemed like a nice choice at the time.

        About the project, the current version of the exe is not being reported as bad anymore by Avast, just fyi. And the fixes for the diagonal monitor seems to work fine. I’ll test it some more, but overall it seems to work good now.

        Good job!

        • Great to hear ๐Ÿ™‚

          And I’m an old Assembly hack myself. In fact my final year project for my degree was writing a big number math unit for cryptography – specifically for public/private key generation for RSA security. That was back in ’94 though!

          Funny how it’s not flagging in the AV, I didn’t change anything – I mean, imported libraries etc.

          I am relying on Windows actually jamming the mouse in the corner before I fire my hop – so it will always lag for that. If it’s too noticeable I was actually thinking of tracking its movement by storing the last couple of positions, work out it’s acceleration, and postulate where it will be next, and check if that position is on a new screen, and if so, hop it there. But I won’t bother until it’s an issue!

          • Found a weird “bug” today. The program stops working when the Task Manager window is active. Not a big deal, and noticed it by accident, but it’s 100% repeatable for me anyway, and whenever the Task Manager is the active window, the mouse sticks in the corners again. Just wanted to report to you. ๐Ÿ™‚

          • That would be due to the reason I gave “it wonโ€™t fire when the active/topmost window belongs to a process which is running with privileges elevated higher than what NonStickMouse itself is running with.”

            The Task Manager is absolutely running at admin level – even though there’s no UAC dialog to launch it.

            The reason MS prevents reading and controlling the mouse when an elevated program is running is to prevent apps from elevating themselves. Otherwise an app could re-launch itself as administrator, while it immediately clicks on the UAC message from the limited instance, which would then terminate itself allowing the admin leveled app to do whatever it pleases!

  6. This works when I move my mouse slowly across the corner, but still gets stuck when I move my mouse quickly, which I normally do when going between monitors.

    • Does it stop completely, or seem to hang for a bit before hopping over?

      The problem is I poll the mouse, that is, constantly ask where it is (a passive, non-invasive solution). The true solution would be to hook into the mouse itself, and when it moves it fires an event in my code. That programming is extremely invasive, would set off every security red alert, and has the potential of killing the mouse or crashing the hooked application – so I’ll leave that to Microsoft!

      The best I can do is have a passed parameter of how frequently to check the mouse’s position – it’s currently set to 100 times a second, but it could easily be 1000 times – but that would up the CPU usage. Hmm, ironically as I was writing this I did a quick test at 1000 a second to see the extra CPU overhead – and it’s the same as at 100/sec! So I can try that if it helps – let me know what you think, cheers ๐Ÿ™‚

      Edit: Another solution would be to create a form (thus with a window’s handle) in the corner of every screen. These “forms” would be 1×1 pixels big, be transparent, and locked to “stay on top”. I’d hook the mouse-move event on the form. The draw-backs are it physically affects the screen, could affect full-screen applications, override/disable applications which use the corners (perhaps including Microsoft’s Hot Corner), not behave properly when resolutions are changed (it may flicker as I’d have to move the window) and when the monitor alignments are moved. It would also be a bigger demand on resources, it would list with the visible applications (when its not) instead of with the processes – BUT, it would fix the situation you are referring to. (Still, I would try the 1ms poll before I do this, hehe.)

  7. New update!
    The poll is now 1000 times a second – due to all my testing this seems to make no more overhead on the CPU then 100 times a second. Hopefully it will now respond near immediately. For it to be any more responsive I will have to adopt an event driven solution. Also, I updated the source code to this version.

  8. Hi Jonathan, I’ve been suffering with the very same problem (Hot Corners) since upgrading to W10.
    Nice to see Microsoft leaping into action (not!) as usual while the t’internet has so many threads complaining about such a stupid un-switchable option. Yet again Microsoft fails to… blah, blah, blah…
    Anyway, my point is, I’d just like to say a very big thank you to you for taking the time to create and then share your solution. It’s people like you that keep some of us sane! :o)

  9. This is great. One bug I’ve found, maybe its just my computer, is that it does not work when the services.msc mmc window is open and is the active window. Not sure why this window would behave differently than an explorer window, but on my computer, when this is open and active, can no longer smoothly go across monitors. Otherwise, thank you so much!

    • That would be due to the reason I gave โ€œit wonโ€™t fire when the active/topmost window belongs to a process which is running with privileges elevated higher than what NonStickMouse itself is running with.โ€

      Services is absolutely running at admin level.

      The reason MS prevents reading and controlling the mouse when an elevated program is running is to prevent apps from elevating themselves. Otherwise an app could re-launch itself as administrator, while it immediately clicks on the UAC message from the limited instance, which would then terminate itself allowing the admin leveled app to do whatever it pleases!

  10. I’ve noticed that it still catches every so often. Depends on how fast you move and how frequently you move. I see your fix is basically a band-aid(I noticed the fix just moves the mouse as you’re moving. lol. Nicely done!) until MS gets off their ass’ about the issue.

    Either way, thanks for helping the situation out! ๐Ÿ˜€

    • Yea, this is true. I commented before (^^ up there somewhere!) that: –

      I am relying on Windows actually jamming the mouse in the corner before I fire my hop โ€“ so it will always lag for that. If itโ€™s too noticeable I was actually thinking of tracking its movement by storing the last couple of positions, work out itโ€™s acceleration, and postulate where it will be next, and check if that position is on a new screen, and if so, hop it there. But I wonโ€™t bother until itโ€™s an issue!

    • I did run into a little bug, someones when I hit the corners, the monitors black out and lose signal and then it comes back.

      Running a Surface Book Pro w/ windows 10, using a startech hdmi adapter to dock to 3 monitors.

      • Odd, and I can’t duplicate that one! My other monitor is on VGA, and HDMI has a world of different capabilities.

        But, if the mouse jams in the bottom right corner of the primary display that’s where the Windows Desktop Preview button is.
        There’s a switch in the Taskbar settings called “Use Peek to preview the desktop when you move your mouse to the Show desktop button at the end of the taskbar” – which hides all windows just when the mouse is in the bottom-right corner, no clicking required. You’ll have to terminate NonStickMouse to see this work – but if the mouse jams there for long enough to fire that feature your screen will flicker, it may be that is what you are seeing?

        • No I don’t believe so, I am going to guess it is something funny with the dock adapter AND windows 10. I have a similar issue when I look at Amazon Video, and just HOVER over the watch trailer or play button the first time on a new tab, monitors 2 and 3 go completely black for a few a seconds like the video signal is lost and then it comes back and works fine until I try it in a new browser or tab.

  11. Xervir mentions here on a Microsoft Answers thread: –

    Those using this application, please note that you should have “Disable display scaling on high DPI settings” selected in the executable’s compatibility properties. The will ensure that the program will function between monitors with differing GUI scaling values.
    ___

    So I’ll look into this when I can, see if I can remove this requirement if possible. I only use 2 monitors of the same resolution, I just shared my app for the sake of others, which means I am limited when it comes to testing for many situations – so I hope this information helps.

  12. It’s ridiculous that there was ever a need for this little program but I am so thankful that you wrote this. I just installed Win 10 yesterday evening and so far today I’ve closed Firefox at least 3 times accidentally…lol.

    Again, thanks for the time you took to make this program.

  13. Please help!!!

    I was using your wonderful app just last week and everything was going fine! I believe I had shut down and restarted several times since the initial download and I don’t recall having to reopen the app. The only thing I did that changed was switch a single monitor (of my two monitors) with a different one so that they’re the same size. During the switch, I had shut down the computer and when I turned it back on, I had to fix some of my display options (move the screens around). I then tried to start up your app when I saw the mouse was sticking at the top corner of my left monitor when moving to the right. I then uninstalled and reinstalled both the application and the installer and still nothing :(. I believe before I had done the installer since I had both a start menu icon and desktop icon.

    You app has been a lifesaver, so any advice you have would be wonderful!!!

    • Alrighty Sarah – let’s see. Does this mean the app is thinking a screen on the left side is actually on the right? If that’s the case please just try rebooting the machine itself – well, try that anyway just to discount any configuration issues!

      It could also be that the screens are not perfectly aligned, like, they are 1 pixel out. I covered this on this thread http://answers.microsoft.com with my post at the bottom (can’t link directly to answers in answers.microsoft.com – go figure).

      To sum up, go into Control Panel / Display / Screen Resolution (do not use the Display Settings on a desktop right-click, that screen is crippled!). On this screen just move a monitor a bit so you can see its offset co-ordinates and ensure that it is aligned by it having a 0 as the second number (assuming you have them side by side). Mine looks like this: –
      Display Settings

      But please let me know if none of this helps – we’ll get this working one way or another for you ๐Ÿ™‚

      Cheers
      Jonathan

      • So I rebooted my computer and there’s still the issue. (The app opened on its own with the restart and then I closed it and opened it again just to make sure)

        I checked that the screens are aligned. I’m using two different Dell model monitors. My left is Dell P2213 (Digital DVI) and the right is Dell E228WFP. The left is set as my main screen and is the one I recently replaced so that both of my monitors could be the same size.

        It’s still sticking ๐Ÿ™ I mainly was using your feature to close windows that were open on my right screen. All I had to do was throw my mouse all the way up and to the right and click and it would close. Now it’s just closing the open window on my left screen since that’s where the mouse is sticking.

        Any other thoughts? And just FYI you’re absolutely awesome for taking the time to not only create this software, but share it (for free) AND respond to people’s questions and comments! Not many people would take the time, so sincerely, thank you!

  14. Heya. I will help to the extent that you let me! Even if you wanted me to check it running on your computer via remote control – but let’s not get carried away. The best I can do is to rewrite the application to produce a debug version. What I will do is create a version which has a little visible window which shows you exactly what the mouse is doing and where it thinks the boundaries are. With this diagnostic information we should be able to understand why it’s not behaving. This may take a couple of days to write though ๐Ÿ™

    In the meantime, if you are comfortable to do so, you could try running the application as administrator. The reason I state this is from my last sentence on this post: “it wonโ€™t fire when the active/topmost window belongs to a process which is running with privileges elevated higher than what NonStickMouse itself is running with.” At least that would discount that as a possibility.

    • Ok, so I lied. I wanted to get this sorted as soon as I could ๐Ÿ™‚
      So here is the feedback app: –
      https://www.jawfin.net/download/NSMDebug.exe

      This won’t solve the issue, but it should let you know what it think it’s doing.

      Here’s a screenshot of it: –
      NSM Feedback app

      What we’re particularly interested in is the grid – where NSM thinks the other screens are relative to the current one. Note this isn’t exactly how it works as NSM can detect if you have 2 screens to the right and it’ll pick the correct one depending on the height that the mouse goes across – this is just sampled from the corners – which will be relevant for 99% of people.

      Once we see how the grid thinks the mouse should hop we can watch the labels at the top update as to where it polls the mouse to be and the effect of the last jump. If the current values are not constantly updating then we know we have an issue with the app getting the mouse’s coordinates. Also if the UNKNOWN line lights up that means the app was not able to discern which monitor the mouse is on, thus a hop will never execute.

      As this app also fires the hops please terminate NonStickMouse.exe when this is running, so the console app doesn’t get the jump on this one (I made a funny).

  15. So I tried that app and I’m not 100% sure I did what you wanted, but I tried my best!

    First, as I was doing the test, I realized that the mouse always has more difficulty when moving from the left screen to the right screen than right to left. I’m not sure if that’s important.

    Second, the coordinates were always moving when I moved the mouse and the UNKNOWN line never lit up.

    Third, I took screenshots of the tests, but I don’t know how to put them in here, so I will describe them! I’ll try to put them below the description…

    When I did the test at the top of the screen (the main problem area), these were the values:
    Current: -, Last Hop: –
    Screen: 0, From: 1 To: 0
    X: 1688, X: 1679 1688
    Y: 9, Y: 0 9
    Line 0: 1680, 0, 3360, 1050, 1, blank, blank, blank
    Line 1: 0, 0, 1680, 1050, blank, 0, blank, blank

    When I did the test at the bottom of the screen, these were the values:
    Current: -, Last Hop: –
    Screen: 0, From: 1 To: 0
    X: 1688, X: 1679 1688
    Y: 1040, Y: 1049 1040
    Line 0: 1680, 0, 3360, 1050, 1, blank, blank, blank
    Line 1: 0, 0, 1680, 1050, blank, 0, blank, blank

    I have absolutely no idea if this is helpful… ๐Ÿ™

      • Thanks for all that ๐Ÿ™‚
        I hope you don’t mind I edited your posts so the pictures were embedded. This uses html tags, not bbcodes, so it’s: –
        <img src=”http://path_to_image_here” />

        Also if it’s easier for you we can communicate via email – I just want to be careful not to flood this board and confuse others. Of course, they will see if there are having similar issues and use this app and email me too! jawfin@gmail.com – please do not feel compelled to if that is uncomfortable.

        To the issue then: firstly just moving the mouse side to side will not fire NSM unless you are going really slow or are dragging a window – as Microsoft’s Snap To only fires when a window is being moved. But, NSM will always fire in the corners because the mouse gets stuck there every time.

        What I notice is your principle monitor is your second screen – absolutely nothing wrong with that but that may be something NSM just isn’t handling.

        I suppose what we are looking for is this: with the debug app running have the mouse stuck in the corner where it should jump, then take a whole screenshot of both screens at that time. Obviously redact anything you don’t want seen in public, and show where the mouse is stuck. Simply hit the screenshot key, paste into any paint program and fix! To fake this I ran a program as administrator (process hacker), set focus to it, then got the mouse stuck (recall NSM can’t see the mouse when the top-most app has higher privileges), thusly: –

        And the mouse is top-middle where the big arrow is pointing. That middle being the designation between my 2 screens.
        As I said, you can of course email if that is easier for this ๐Ÿ™‚

    • Yup yup, that is caused by me pushing it 8 pixels away from the edge, thus 8 pixels in both directions if its a corner. The reason is any less and Microsoft still thinks you put it there and it will actually snatch it back and jam it back in the corner, seriously! And it’s even worse than that, if say the monitors are side-by-side and you run the mouse through a top corner, and I move it even to the middle of the next screen (but don’t take it away from the top edge) MS will still snatch it back. I mean, it can be 1000px away and it’ll grab it back.

      So I had 2 options, I can move it to the center of the next screen, wait a frame, then move it again back to 1 pixel over the edge, or just pop it over the 8 pixel boundary (that is, a minimum of 8px from any edge of the new screen). The move to middle then back just never ran smoothly, I was taking too much control away from the user, and if dragging a window it glitched and confused, and the process is longer than the single hop.

      There is just no way around this. Windows cannot tell that an application moved the mouse, and it thinks the user did, so it then thinks “oh hey, you moved your mouse through a corner, you obviously want me to stick it in there forever”. I know it glitches, but sadly its the best I can do in the worst situation.

      If you experiment and find a way of tricking windows into not regrabbing it, I’m happy to test implement other methods so it’s more polite. But what I have now is the best I could find with all my testing.

  16. I love this so much, but it’s made mouse-clicking inconsistent. About 50-75% of the time it ignores the first click after a short delay of not clicking and I often have to double click to get it to register that I clicked at all. As soon as I kill the NSM process the mouse-clicking becomes immediately responsive again.

    • Hmm, that’s a new one. I have several different ways of approaching this, I can reduce to poll check to see if that is the issue – what I would do is make it a passed parameter to the application, like you’d run it as: –
      nsm.exe 100
      to say check 100 times a second instead of its default of 1000. (That doesn’t mean it really is doing 1000 per second, it just means it fires every time the CPU says its idle – I would throttle that firing, i.e. leave the idle longer).

      Another means, in fact one I would suggest first, is running the debug version used for testing from here: –
      https://www.jawfin.net/download/NSMDebug.exe
      It’s not so much that we need to debug it, but that the debug version uses a different mechanism to fire the mouse check event (it uses a timer object as opposed to the signal/wait loop which you can see in the source code).

      This way we can hope to make it work without eating mouse clicks. But first, let me know how you go with the debug version, and if you’re happy to experiment I can rewrite nsm several different ways until it behaves for you ๐Ÿ™‚

      • Sorry I didn’t get back to you sooner, but after several days of switching between debug, regular, and not running at all it turns out NSM wasn’t the problem. Nothing was changing no matter what I did, which got me frustrated enough to go through every single program that’s installed, and it turns out the stock touchpad software has a setting to delay mouse clicks after certain conditions when using the touchpad. For whatever reason that delay setting got turned on, so I turned it back off and the problem was fixed.

        Thanks for the help and quick reply, and I’m glad it was as simple as that.

  17. Hmmm unfortunately, doesn’t appear to be working at all for me…

    2 1920×1080 monitors side-by-side, primary on left.

    Process is running and visible in task manager

    Moving the mouse along the top of the screen from left to right always results in getting stuck in the top-right corner of display 1, doesn’t matter what speed I move it.

    same applies right-to-left and at the bottom of the screen.

    In short, I can’t see any difference.

    What can I do to debug this?

    • Hmmmm! Interesting….

      Found the debug app above and thought the numbers looked a little odd…

      It’s reading:

      #1: 0,0,1536,864
      #2: 1920,0,3840,1080

      N/E/S/W are all blank.

      Now, I suspect that’s due to the fact that I’m using 125% scaling which is causing apps.

      Disabling the scaling (and restarting the process) resulted in correct numbers, however, I want to preserve scaling.

      Long story short… Kill the process, find the executable (I used the installer so under Program Files (x86), right-click, Properties -> Compatability -> Tick “Disable display scaling on high DPI settings”.

      After that, re-launched and it’s working as expected

      • Aha, thanks for your research on this – I would have not guessed that was the solution!
        It was mentioned elsewhere here that the compatibility resolved another issue – but now I have the numbers you’ve given me I can experiment with the scaling and find a means which the compatibility switch won’t be required.

        Thanks again ๐Ÿ™‚

  18. I like this, but is it supposed to move my mouse about 10 pixels away from the edge of the screen when I cross monitors? Because that’s what’s happening. lol.

    • Unfortunately yes ๐Ÿ™
      I’ll just copy/paste my bit from my post here: https://www.jawfin.net/?page_id=143#comment-15025

      Yup yup, that is caused by me pushing it 8 pixels away from the edge, thus 8 pixels in both directions if its a corner. The reason is any less and Microsoft still thinks you put it there and it will actually snatch it back and jam it back in the corner, seriously! And it’s even worse than that, if say the monitors are side-by-side and you run the mouse through a top corner, and I move it even to the middle of the next screen (but don’t take it away from the top edge) MS will still snatch it back. I mean, it can be 1000px away and it’ll grab it back.

      So I had 2 options, I can move it to the center of the next screen, wait a frame, then move it again back to 1 pixel over the edge, or just pop it over the 8 pixel boundary (that is, a minimum of 8px from any edge of the new screen). The move to middle then back just never ran smoothly, I was taking too much control away from the user, and if dragging a window it glitched and confused, and the process is longer than the single hop.

      There is just no way around this. Windows cannot tell that an application moved the mouse, and it thinks the user did, so it then thinks “oh hey, you moved your mouse through a corner, you obviously want me to stick it in there forever”. I know it glitches, but sadly its the best I can do in the worst situation.

      If you experiment and find a way of tricking windows into not regrabbing it, I’m happy to test implement other methods so it’s more polite. But what I have now is the best I could find with all my testing.

  19. Thank you so much for putting this out there. Your patience is unbelievable (almost as unbelievable as the fact Microsoft is content to ignore the core issue).

    Is there a way that grateful users can show their appreciation? It looks like all of your Android apps are free, so maybe a donate button? Of course you have my gratitude, but the least I could do is buy you a beer!

    • Thanks so much for your generous thought but I will not profit from Microsoft’s mistakes. This isn’t me being over-righteous, I treat my business customers the same – I’ll even go on site and not charge to fix Microsoft issues with their network. Microsoft provides the platform for my business to run, so I feel that obligation towards them.

      But, if you are really determined, you can buy my Pro version of Solitaire 3D for Android from here: –
      https://play.google.com/store/apps/details?id=com.jawfin.sol3dtabpro
      That way you can give it 5 stars too, hehe.

      And I do love my beer!! Here’s a post of mine on a forum with which I am affiliated with about such ๐Ÿ˜€
      http://www.knights-reborn.org/forum/viewtopic.php?t=5864

      p.s. Sorry for the delay in replying, I was out of the country and incommunicado until now.

  20. Oh my God, thank you for this program! What a relief! Now the Windows desktop works intuitively again when I am moving the mouse and dragging stuff around between my monitors! It has been such a nuisance with those corners since I got a new computer and had to “upgrade” from Windows 7 to Windows 10. Now life is good again. ๐Ÿ˜‰

    Thank you, thank you, thank you.

  21. Worked perfectly and fast. Thank you! How can a Billion dollar Windows development team not fix this? It’s clear where their heads are.

  22. I am running this and it seems moving mouse pointer from left screen to right screen corner is no issue but going from right monitor to left monitor corner my mouse gets stuck?!? Any fix or tip to correct that? thanks

        • Also seems to not give me problems moving from one screen to the other if im moving slowly but if I speed up any it gets stuck. Any fix for that? thanks

          • That doesn’t make sense. The way the app works is it waits for Windows to jam it in the corner then hop it over when it detects such – so by that approach it should never stick. It may take a small pause before the hop (as the process is polled) but it should always go across.

            The only thing I can suggest is running the debug version, as mentioned here: –
            https://www.jawfin.net/?page_id=143#comment-14930
            When this is running don’t have the normal NSM.exe running as we want the debug version to handle all the mouse control. I guess what we’re looking for is the numbers it shows when it gets stuck. In such an instance you can use the Print Screen key to copy the desktop image into the clipboard, which can be pasted into Paint and saved on an image gallery site such as http://imgur.com and link that image here, or, just write the numbers out as you see them when it fails to fire.

            Sorry I can’t think of any other reasons why it won’t work.

  23. Thank you so much for this, I have my monitors set corner to corner to help with games that don’t lock mouse to window in borderless windowed mode but alt tabbing to access my second monitor would always take longer than it should, this fixed everything.

    • Oooh, that’s clever. I also run Mouse Without Borders so I can easily control other computers on my network, I may do the same for them, cornerize (that a word?) them so I don’t accidently bump them!

  24. Hi, I have 2 monitors. The app seems to fix going across the top and bottom (right>>Left) but not from Left>>Right. Thanks for any help!

  25. Hi Jonathan,

    First of all thank you for this application. I moved onto Windows 10 earlier this week from Windows 7 and the corners have been annoying me. This is a fresh install onto a brand new SSD.

    I think I found a bug, I’m not sure if this is caused in conjunction with my graphics drivers or not, but full screen Youtube videos have this annoying little offset when I run your application. Please see the images below. My default setup is with the taskbar on the right edge of the left monitor.

    Full screen Youtube with taskbar on the right edge of the left monitor.

    Full screen Youtube with taskbar on the left edge of the center monitor.

    Just now I discovered this as well.
    Minimized Chrome browser and try to peek preview.You can see that the window bleeds into the next screen

    To fix the bug, I need to go to task manager, kill your app, then move the taskbar to a different location and back.

    • I will look into it as soon as I can – just ducking out of my office right now!!
      I’m trying to think why it would cause this behavior – maybe the window follows the mouse somehow and follows it through the screen hop – I’ll have a play and see what I can find ๐Ÿ™‚

      • I think maybe the taskbar on the left monitor is “pushing” full screen windows away from the edge of the screen of the center monitor because the offset looks roughly the same as the amount of dip you gave the mouse hop.

        Sorry, seems like I messed up the images. They’re in the post so can you edit them back in for me?

        • The source URL references for the images were not retained in the post, so I don’t know where they are! If you post the text of the URL (like https://www.jawfin.net/wp-content/uploads/2015/12/jb2-32×32.jpg ) I can put the images back in.

          I tried messing around with youtube videos in full screen, and moving the taskbar around too – auto-hide on and off, but I couldn’t get it to misbehave.

          I’m wondering if the side taskbar is changing the effective width and height of the monitor (a monitor has 2 sets of dimensions, its actual size, and the client size which is how big a window gets when maximised when the taskbar is always on top).

          Is it possible you could post a screenshot of your “Taskbar and Start Menu Properties” so I can exactly match yours for testing?

          Also, please try the Debug version here: –
          https://www.jawfin.net/?page_id=143#comment-14930
          to see if its getting the correct resolutions and the hop fires correctly.

          Otherwise I’m stumped, sorry to say!!

  26. Full screen Youtube with taskbar on the right edge of the left monitor.

    Full screen Youtube with taskbar on the left edge of the center monitor.

    Minimized Chrome browser and try to peek preview.You can see that the window bleeds into the next screen.

    Yes, all the resolutions look alright.

    • Aha, I see it.
      A couple of thoughts, are you doing full screen by dragging a window with the mouse through the monitors then using the snap-to at the top of the screen so Windows will maximise it? If so, I wonder if somehow the hop is firing after the dock, which ties the window to the mouse and thus may move the window when the 8px top and left borders are applied.

      A quick check to see if this is the case, use the restore window button (the box in the top right corner of the title bar) and maximise it again and see if its still offset. Usually a restore/maximise will correct the issue of offsets being wrong.

      Another thing which the debug screen shows me is it considered the screen on the left (1) to not only be on the left (east) but also on top (north). This is due to the different resolutions of all the screens. As the middle screen (0) is shorter then the left one, it misidentifies that – I wonder if that also makes an impact on this.

      I’ll see if I can set my screen layout the same as yours, then I should be able to work out a way to make it behave.

      Awesome layout though ๐Ÿ™‚

  27. Actually, now that you mention it, your debug thinks monitor 1 is to the east and north of 0 at the same time, while monitor 2 is to the west of 0. You can see from my earlier screenshots that:

    Main display in the center, monitor 0, 1680×1050
    display to the west of 0, monitor 1, 1920×1080
    display to the east of 0, monitor 2, 1024×1280

    I normally drag the window to the top to maximize the window. I tried your suggestion but it still did the same thing. Note that this doesn’t happen when I am using my computer for most of the time. It only happens when I make Youtube full screen and when I use Aero Peek.

    I tried replicating the phenomenon on other windows like Task Manager and Internet Explorer to try out Youtube and I couldn’t replicate it. It only happens with Chrome.

    Other things I tried: moving the task bar all over the place. Youtube full screen only bugs out when task bar is not on monitor 0. Aero Peek will bug out no matter which monitor the task bar is on.

    • Thanks for that extra info. I’ll see how I go with that too.

      I was researching this, and we’re pretty sure this behaviour is tied to NonStick Mouse, but one suggestion was to try a Youtube video in Chrome in incognito mode (which is a quick way of not using plugins and extensions) – I only mention this as I was reading about it, I doubt it would make a difference, just throwing it out there!

        • Ok, sorry for the big delay – stuff eats up my time.

          ** Read Edit at bottom first!!

          I’ve really had a play with this, and I’ve found the issue. As far as I can tell it’s not Non-Stick-Mouse. But this is what it is.

          You dock the Start Menu on a monitor which is not considered the primary display, so for me I have this: –

          The red line marks the boundary between the screens.

          Note I have the Start Menu docked between the displays, not on the main display (which is monitor 2) then on the primary monitor (as I only have 2 screens I can’t test on anything else!) the Peek offsets the view. I suspect the docked menu (not set to auto-hide) is pushing into the client area of the next screen. The “client” area is the area free for applications not reserved by docked windows (which is to say the area a window will take up when maximised). So the client area behaves correctly for window sizing, but not preview. It could also be the border around the window (which is hidden when maximised) is taken into consideration by the peek when it really shouldn’t. So, without non-stick-mouse running, this window in preview looks like: –

          I’m not sure what the solution is then – maybe make the left monitor the main display (which will move the icons), or watch youtube on another screen. This seems to be a bug in Windows – for a giggle you could try telling Microsoft about it.

          Edit: Ooohk – it would seem it doesn’t matter where it is, what monitor, and what monitor has the Start Menu – peek always gets the preview wrong for a Chrome window which was maximised before being minimised. So I suspect its a bug in Chrome – it’s probably not reporting it’s true window size back to windows for the peek to show it. In which case it may be a Google issue.

  28. Sorry if this is a double post.

    This app looks to be great. It does seem to solve my horizontal movement issues. I have 4 1080p landscape monitors in a rectangle, with a single portrait 1080p monitor on each side, with the bottom level with the bottom of the rectangle. My issue is moving vertically. I have to really get the mouse moving to move between vertical monitors. My main monitor is the upper left in the rectangle. The screenshot shows it stuck trying to move down from my main monitor. I noticed this really happening when I updated to the Anniversary edition. I can “go around” the vertical change by moving horizontally to one of the portrait and then moving down a bit, and moving horizontally back to the lower landscape, but that’s a pain.

    • That you have to move at speed means it’s relying on Windows default behavior to get the mouse down there, and not using NSM to hop the mouse. As I can’t hope to duplicate your setup you’ll have to bear with me.

      You could run my debug version mentioned here: –
      https://www.jawfin.net/?page_id=143#comment-14930
      And see from the grid it populates whether it’s handling the vertical alignment of your monitors correctly. Note the original NSM has to be terminated so it doesn’t interfere with the debug version. Hopefully it’ll provide feedback which makes sense as to what it is doing!

        • Oh my!

          I have no chance of duplicating that display set-up haha!

          The debug version shows me I have bugs though, just at quick glance – for instance I notice that although some monitors are identified as being North of others, there are no corresponding South ones. I don’t know if this is in any way impacting the offset issue NSM is causing – but doesn’t hurt to fix the little things too. I’ll check the actual numbers to make sure they are adding up.

          End of month is a busy time for me, so I am sorry if I don’t get back to you with something quickly, but be assured it’s on my to-do ๐Ÿ™‚

          Edit: The debug version uses slightly different code to move and identify the mouse – can I ask is the debug version also messing up those full-screen offsets? (And make sure NonStickMouse.exe itself isn’t running, just NSMDebug.exe)

        • Alrighty, I’ve taken the time to look at this. The first thing which did jump out at me was the odd (as in not even) numbers in the debug screen. All resolutions are even numbers, so right away that tells me the screens aren’t perfectly aligned (and as we are talking about pixels this is required for the silly mouse to behave).

          And as the master hack artist I am, I knocked this up in excel
          Danny's Screens

          The first grid is the current settings, and the second is what screens we need to move just so we have a solid starting point.

          To get pixel-perfect screen locations please look at my comment here: –
          https://www.jawfin.net/?page_id=143#comment-14914

          That’s the one showing how to use the Control Panel Display Settings to show the real screen origin on the preview.

          This should fix the sticking behaviour.

  29. hi,
    I had same problem as you describe above but it looks there is a way how to disable this windows functionality – try settings/system/multitasking/snap and disable the first option.

    Karo

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

HTML tags allowed in your comment: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>