Is there a Win7 shortcut to position mouse in center of primary screen?

50,242

Solution 1

Combining a few of the above ideas, I came up with this script. It's tested and working.

CentreCursor.ps1

[System.Reflection.Assembly]::LoadWithPartialName("System.Drawing") | out-null
[System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") | out-null
$bounds = [System.Windows.Forms.Screen]::PrimaryScreen.Bounds
$center = $bounds.Location
$center.X += $bounds.Width / 2
$center.Y += $bounds.Height / 2
[System.Windows.Forms.Cursor]::Position = $center

Save this script in a convenient folder, and create a shortcut in your All Programs menu:

Target: %systemroot%\system32\windowspowershell\v1.0\powershell.exe -ExecutionPolicy RemoteSigned -File "C:\Path To Script\CentreCursor.ps1"

Shortcut key: Ctrl + Alt + Shift + C

Run: Minimized

Now whenever you press Ctrl+Alt+Shift+C, your cursor will return home.

Edit: While it doesn't seem to be a requirement on my computer, I've added Patrick's suggestion to the shortcut.

Solution 2

Turning on "Show location of pointer when I press the CTRL key" is one option. This is especially useful if it is currently changed to some custom mouse pointer by an application, like a paint brush, that is harder to see.

enter image description here

Solution 3

You can do this fairly easily with a software program called UltraMon.

In the options section there is a place to specify HotKeys. You can see screenshot where I've setup a hot key for Crtl + Shift + C

enter image description here

Solution 4

The following AutoHotkey command sequence will instantly move the mouse to the center of the primary display:

CoordMode, Mouse, Screen
MouseMove, A_ScreenWidth/2, A_ScreenHeight/2, 0

For example, compile the following script:

CoordMode, Mouse, Screen
MouseMove, A_ScreenWidth/2, A_ScreenHeight/2, 0
ExitApp

You can then create a shortcut (.lnk) to it with a shortcut key of your choice. :)

Solution 5

Here's an AutoIt script to do it. AutoIt can compile its scripts to .exe, which you could then assign a hotkey.

Dim Const $SPI_GETWORKAREA = 0x0030

$rect = DllStructCreate("long left;long top;long right;long bottom")

DllCall("user32.dll", "BOOL", "SystemParametersInfo", "UINT", $SPI_GETWORKAREA, "UINT", 0, "ptr", DllStructGetPtr($rect), "UINT", 0)

Dim $left = DllStructGetData($rect, 1)
Dim $top = DllStructGetData($rect, 2)
Dim $right = DllStructGetData($rect, 3)
Dim $bottom = DllStructGetData($rect, 4)

MouseMove($left + (($right - $left) / 2), $top + (($bottom - $top) / 2))
Share:
50,242

Related videos on Youtube

tehDorf
Author by

tehDorf

Updated on September 18, 2022

Comments

  • tehDorf
    tehDorf over 1 year

    I have a three monitor set up on Windows 7 and I sometimes lose track of where my cursor is. Is there any Windows shortcut to reset the mouse position? I'm guessing there is not, but might there be a way to set up a simple macro I could bind to a key combination to set my cursor to a default location, such as the center of the primary display?

    • Admin
      Admin over 12 years
      I could write you a program that does this when you click - but you would have to find the mouse cursor and move it to the program icon to click. :-(
    • Admin
      Admin over 12 years
      @DaveBecker, how about a program that does it on execute? Then you can launch it with a shortcut-key.
    • Admin
      Admin over 12 years
      I personally think everyone should turn on the position cursor to the default button. Everyone always looks for the program window first, then thinks about moving the cursor to such. Also I believe everyone should change their cursor scheme to the Extra Large Black cursor, since there is a plague of white/light colored backgrounds.
  • Patrick Seymour
    Patrick Seymour over 12 years
    PowerShell scripts require the execution policy to be changed, if you haven't done so already. You would need to change it permanently or run PowerShell.exe with the "-ExecutionPolicy RemoteSigned" argument.
  • Patrick Seymour
    Patrick Seymour over 12 years
    PowerShell scripts require the execution policy to be changed, if you haven't done so already. You would need to change it permanently or run PowerShell.exe with the "-ExecutionPolicy RemoteSigned" argument.
  • Brian
    Brian over 12 years
    Looks good but $40US is a bit much if this is all a user wants to do.
  • Scott Chamberlain
    Scott Chamberlain over 12 years
    Pointer Trails is also very helpful, makes a much bigger target to see when you wiggle the mouse around.
  • tehDorf
    tehDorf about 12 years
    @Hand-E-Food You must have changed the execution policy on your machine or something because I was unable to get your answer to work as written. I had to change the target to %systemroot%\system32\windowspowershell\v1.0\powershell.exe -ExecutionPolicy RemoteSigned "C:\PathToScript\CentreCursor.ps1" to get it to work. I re-ordered the arguments, Patrick's command had to come before the file. I've updated your answer to reflect this.
  • tehDorf
    tehDorf about 12 years
    Oh, yeah. Thank you @Hand-E-Food and everyone else who's answer was combined into this one!
  • Hand-E-Food
    Hand-E-Food about 12 years
    Glad to help! It taught me something new. (And "centre" is perfectly acceptable spelling outside of the US.) ;-)
  • YumYumYum
    YumYumYum almost 9 years
    Its not FREE, can you share FREE tools too.
  • Pavel
    Pavel over 8 years
    +1 In my company, there is Ultramon installed on every computer by default, any already many of my coworkers owe you one for this (delivered by me) :)
  • simpleuser
    simpleuser about 8 years
    FYI, Windows 10 would not accept a path with spaces, and %systemroot% is not set. I had to run the command in the directory with the file, and run it as C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy RemoteSigned .\CenterCursor.ps1
  • Hand-E-Food
    Hand-E-Food about 8 years
    @user1663987, to use spaces in the path, put quotes around the command: "C:\My Path\My Command.cmd"
  • simpleuser
    simpleuser about 8 years
    @Hand-E-Food first thing I tried. Didn't work. Got errors from powershell about missing files because it still split the quoted path into two parts. Reproduced error in a powershell window.
  • simpleuser
    simpleuser about 8 years
    @Hand-E-Food screen capture at i.imgur.com/KNDuFyY.png showing that quotes do not fix the issue
  • Hand-E-Food
    Hand-E-Food about 8 years
    @user1663987, I see now. You need the -File switch. I've edited my answer to include this. Thanks!
  • ranjeet
    ranjeet almost 8 years
    This is awesome. I came here by searching for "hot key to move mouse pointer to known location". And if you are somewhat visually challenged -- which is likely if you are here -- and this does not work at first attempt note the two different spellings "CentreCursor.ps1" and "CenterCursor.ps1".
  • tehDorf
    tehDorf over 7 years
    @MiserableVariable Thanks for pointing that out - I've reverted the file name for the first snippit back to the author's original naming so they both match now.
  • Admin
    Admin over 6 years
    This is a good method except it seems to be slow(takes about 3 seconds for windows to run it). But doesn't require much else. I had to use elevate shortcut to prevent the windows security popup.
  • Ramhound
    Ramhound over 5 years
    Before anyone says, "this does not work" you first have to understand "C:\Path To Script\CentreCursor.ps1" is just an example. If your path to the script, contains spaces, you must handle it correctly otherwise it won't work.