Non Stick Mouse in corners of Windows 10

Use this application to disable or bypass the sticky corners in Windows 10 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.

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 (2 out of 79)
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 (2 false positives – Same stupid AVs that hit the app itself)
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 emedded 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/?page_id=143&cpage=3#comment-16517

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 🙂
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 in corners of Windows 10 — 509 Comments

  1. Not sure if this is the best place to post but when I run the application the mouse hops to my left screen but cannot hop over and gets stuck on the right monitor, is there a setting or change that I should make?

    Thanks,
    Rajan

    • Oh hey, page throw!

      And yup, perfect place to post.

      OK, so, at a guess its possible your monitors are not perfectly aligned (not your fault, the Display Options don’t show an out-of-alignment, because it’s lame) – or – one screen has a bigger resolution and it’s not crossing back where it came from due to the overlap.

      I can’t really tell though, without seeing the screen values.

      Please try the debug version of this app, located within the Zip here: –
      https://www.jawfin.net/download/NSMDebug.zip

      And use http://imgur.com or similar to link a screenshot of it running, then I can diagnose it for you.

      As a disclaimer I have to state that the debug version lit up AntiVirus for some reason, it’s completely innocent, but if that dissuades you from using it I completely understand!

      Cheers
      Jonathan

      • Thanks Jonathan for the response,

        Sorry, I didn’t check the comments till today. I will download the debug version and post a screenshot but for reference:
        3 monitors setup is belo
        Monitor (1920 x 1080) + Surface Book 2 (4kish) + Monitor (1920 x 1080)

        The snag is happening on the transition to/from the Surface Book 2 to the right screen. The transition from the Surface Book 2 to/from the Left screen works flawlessly.

        Thanks again for providing the application and also supporting it!!!

        I will post again once I have results for you and really appreciate the assistance.

        Cheers,
        Raj

        • Hey mate,

          The reason for the screenshot isn’t so much about the resolutions, but the relative positions of the screens.

          Like this bit I’ve marked in red here, showing that the monitors are aligned: –

          https://i.imgur.com/srPErE5.png

          Cheers 🙂

    • Haha, that is crazy, and the reason why is because I use the inno installer https://jrsoftware.org/isinfo.php – a rather clever little install builder which is easy to use; only, in the last year it has lit up antivirus scanners like nothing else. I suppose because it can do all the things a naughty virus can do: write to the hard-drive (creating other .exe files) and registry, put in firewall rules, put in scheduled tasks and make applications persistent (I.e. put a short-cut to them in the Start Up). It even got annoying enough I considered building my installers as MSI files – approved Microsoft Installer – except for 2 facts, virus also use those, and there’s no way I am paying Microsoft to become a MS approved developer to fix a bug they won’t fix – I just can’t enable that stupidity!

      So, maybe, impossibly so, the AV scanners now recognise inno setup installers (and I mean, inno is extremely popular, they are hardly rare) and instead of shooting the messenger they actually look at the package itself. That, or they are more incompetent and miss what inno does – and I honestly can’t say which of those 2 it is! 🙂

  2. Found this little tool because well microsoft sucks i guess, thanks for creating this, really stupid on ms part. I just bought 3 monitors for my business and this was driving me nuts, i kept getting stuck when moving full windows around as i was trying to just drag across the top of my screens. what a shit idea from ms to block the mouse, as if anyone has a problem with aiming the mouse on any other button!

    • What got me is because it would stick in the top-right corner, which also just so happens to be the place where the close X is on a maximised window – the number of times I closed an app when I was intending to click somewhere on the next screen; it’s like they designed it to fail!

  3. hi Jonathan, in my case, the mouse jumps to the right monitor a little before it touches the side of the monitor. If I move the mouse slowly, it goes to the other side properly (only after touching the side of the monitor). It makes it difficult to use scrollbars, since the mouse goes past them a lot. Is there something I can do about it? Thanks in advance

    • Wow really? I would have thought that impossible – that would indicate that somehow the monitor alignment has been overlapped. We often run into instances where there is a gap it won’t hop, but to pre-fire – that’s new! If you’re comfortable in doing so, please download the debug version and link a screenshot of it running, that way we can see the sizes and offsets of the monitors, and may be able to deduce what the problem is.
      Debug version: https://www.jawfin.net/download/NSMDebug.zip
      Cheers

      • Sure, I’ll try. To give more detail, I had to do I full reinstall of windows (I’m now on win10 2004 – 19041.388), and was not sure if it was windows related or due to a new NonStick update. But the effects appeared after a clean install in my case.

        • Good to hear! A fresh install certainly provides a clean starting place! And as now you no longer have the problem perhaps it was a weird configuration or another app interfering. Still, all working now, so that’s good 🙂
          NSM hasn’t been updated in years – I mean, little tweaks / bug fixes / optimisations; but the process, the brains [so to speak] of it haven’t changed.

          • Ah sorry, I think I wasn’t clear enough heh. The issue only appeared to me after the clean install, when I had to install the latest NonStickMouse update. The issue is still a thing to me. I ran the debug version (didn’t uninstalled NSM to do so though, both were active). I recorded a short video, so you can check it running. I moved the mouse from one screen to the other, in different speeds.
            https://we.tl/t-Rv8exI1o1Y
            (uploaded to wetransfer, if thats fine to you).

            Thanks for your time

        • I can see it is jumping too early from the video, thank you.
          The issue there is its the Debug doing the jump, thus its Count is going up – which means I can’t tell at what stage NSM would have fired. There’s that switch on the debug called “Disable Actual Hop” so it doesn’t trigger.

          Nevertheless, it is firing about 20 pixels too early, and I can see the monitors are aligned correctly (the debug look-ahead is on 30, so still can’t say when NSM would have triggered).

          There’s a couple of thing which may do this, but I can’t be certain. But you could check the Windows font size to see if its messing with the metrics – its in Settings / Display (or right-click the Desktop itself and select “display Settings”) and check here for 100%: –

          Otherwise maybe the DPI could mess with it, multiplying by the scale thus triggering, which is that other link there in the image to Advanced scaling settings, to check for a custom scale.

          I doubt that’s the issue though, just needed to check first!

          You can also try running NonStickMouse.exe in compatibility mode – in the properties of the executable you could try changing its DPI settings – maybe that can coax it to behave.

          Failing all that could you please try another video but with the debug hop turned off? I’m running out of ideas!

          • Thank you for all the help. I did a new video with some tests, as you asked. I think you’ll have more info to analise now. And sorry for all the work.
            I’m not sure why this happens still hehe
            video: https://we.tl/t-6hJ8PQvbpV

            Thanks again

        • Yup yup, awesome. I was wrong in all my guesses, but what you showed me allowed me to work it out.

          OK so, firstly, this app is polled, that means it keeps checking to see if it should move the mouse or not. This is not the “smartest” approach, but it is passive. The alternative is to have it event, or hook, based – that is a hop is triggered when the mouse handler feedback tells the app to fire. That is not passive, in that it hooks into the OS to do the work, and I didn’t want to take that approach.

          The analogy would be answering your phone. You know you need to answer it when it rings! That is an event, or an interrupt (or a hook – get it, off hook… nevermind). By comparison polling is picking the phone up every 5 seconds and saying “someone there?” – hardly optimal, but you (I.e. the app) are doing all the work and not relying on [interfering with] the operating system.

          To make a long story longer, what I did was drop the poll check from every 50 milliseconds to every 1 millisecond, and to drop the look-ahead jump prediction from 30 pixels to 0 pixels – it’ll jump only when it gets to the boundary and no sooner – and it now jumps by 1 pixel instead of 2. You’d wonder why 2 anyway? That was because with the look-ahead a 1 pixel jump could double fire and bring the mouse back again.

          Obviously the increased polling has a greater overhead, and on my PC the 50ms to 1ms leads to a change of CPU usage from 0.07% to 0.2% – hardly a killer but still needs to be stated. Let me know if you care about the source code changes for this – I can point them out on the Github.

          But I didn’t want to overwrite my download above – in case I’m wrong 😛

          tl;dr? Download and use this: –
          https://jawfin.net/download/nsmdiego.exe

          Cheers!

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.