¿Hay un atajo de Win7 para colocar el mouse en el centro de la pantalla principal?

25

Tengo un monitor de tres configurado en Windows 7 y a veces pierdo la noción de dónde está mi cursor. ¿Hay algún acceso directo de Windows para restablecer la posición del mouse? Supongo que no existe, pero ¿podría haber una manera de configurar una macro simple que pudiera asociar a una combinación de teclas para configurar mi cursor en una ubicación predeterminada, como el centro de la pantalla principal?

tehDorf
fuente
66
Podría escribirle un programa que haga esto cuando haga clic, pero tendría que encontrar el cursor del mouse y moverlo al icono del programa para hacer clic. :-(
Dave Becker
1
@DaveBecker, ¿qué tal un programa que lo ejecuta? Luego puede iniciarlo con una tecla de acceso directo.
Hand-E-Food
1
Personalmente, creo que todos deberían activar el cursor de posición en el botón predeterminado. Todos siempre buscan primero la ventana del programa , luego piensan en mover el cursor a tal. También creo que todos deberían cambiar su esquema de cursor al cursor Extra Large Black, ya que hay una plaga de fondos blancos / de colores claros.
surfasb

Respuestas:

27

Combinando algunas de las ideas anteriores, se me ocurrió este guión. Está probado y funcionando.

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

Guarde este script en una carpeta conveniente y cree un acceso directo en el menú Todos los programas:

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

Tecla de acceso directo: Ctrl + Alt + Shift + C

Ejecutar: minimizado

Ahora, cada vez que presione Ctrl+ Alt+ Shift+ C, su cursor volverá a casa.

Editar: Si bien no parece ser un requisito en mi computadora, he agregado la sugerencia de Patrick al acceso directo.

Hand-E-Food
fuente
3
Los scripts de PowerShell requieren que se cambie la política de ejecución, si aún no lo ha hecho. Debería cambiarlo permanentemente o ejecutar PowerShell.exe con el argumento "-ExecutionPolicy RemoteSigned".
Patrick Seymour
@ Hand-E-Food Debe haber cambiado la política de ejecución en su máquina o algo así porque no pude obtener su respuesta para que funcione tal como está escrita. Tuve que cambiar el destino a % systemroot% \ system32 \ windowspowershell \ v1.0 \ powershell.exe -ExecutionPolicy RemoteSigned "C: \ PathToScript \ CentreCursor.ps1" para que funcione. Reordené los argumentos, la orden de Patrick tenía que venir antes del archivo. He actualizado tu respuesta para reflejar esto.
tehDorf
Oh si. ¡Gracias @ Hand-E-Food y todos los demás cuya respuesta se combinó en esta!
tehDorf
¡Encantado de ayudar! Me enseñó algo nuevo. (Y "centro" es una ortografía perfectamente aceptable fuera de los EE. UU.) ;-)
Hand-E-Food
Para su información, Windows 10 no aceptaría una ruta con espacios, y% systemroot% no está configurado. Tuve que ejecutar el comando en el directorio con el archivo, y ejecutarlo como C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe -ExecutionPolicy RemoteSigned. \ CenterCursor.ps1
simpleuser
13

Activar "Mostrar ubicación del puntero cuando presiono la tecla CTRL" es una opción. Esto es especialmente útil si actualmente una aplicación, como un pincel, la cambia a un puntero personalizado, es más difícil de ver.

ingrese la descripción de la imagen aquí

Brian
fuente
2
Pointer Trails también es muy útil, es un objetivo mucho más grande para ver cuando mueves el mouse.
Scott Chamberlain
8

Puede hacerlo con bastante facilidad con un programa de software llamado UltraMon .

En la sección de opciones hay un lugar para especificar HotKeys. Puede ver la captura de pantalla donde configuré una tecla de acceso rápido para Crtl + Shift + C

ingrese la descripción de la imagen aquí

quickcel
fuente
1
Se ve bien, pero $ 40US es un poco demasiado si esto es todo lo que un usuario quiere hacer.
Brian
No es GRATIS, ¿puedes compartir herramientas GRATIS también?
YumYumYum
+1 En mi empresa, hay Ultramon instalado en cada computadora de forma predeterminada, ya muchos de mis compañeros de trabajo te deben uno por esto (entregado por mí) :)
Pavel
7

La siguiente secuencia de comandos de AutoHotkey moverá instantáneamente el mouse al centro de la pantalla principal:

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

Por ejemplo, compile el siguiente script:

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

Luego puede crear un acceso directo ( .lnk) con la tecla de acceso directo que elija. :)

iglvzx
fuente
3

Aquí hay un script de AutoIt para hacerlo. AutoIt puede compilar sus scripts en .exe, que luego puede asignar una tecla de acceso rápido.

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))
Patrick Seymour
fuente
1

Usando WMIC y Powershell (los cuales ya deberían estar instalados en Windows 7) esto debería ser factible.

Usando WMIC, puede obtener el ancho y la altura de la pantalla:

C:\>wmic desktopmonitor get screenheight, screenwidth
ScreenHeight  ScreenWidth
900           1440

y Powershell puede establecer la posición del mouse (reemplazando <X>y <Y>con las coordenadas reales):

PS C:\>[system.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") | out-null
PS C:\>[System.Windows.Forms.Cursor]::Position = New-Object System.Drawing.Point(<X>,<Y>)

Entonces, un poco de prueba y error (y matemática básica) debería darle un script que, cuando se ejecuta, centra el puntero del mouse.

Andrew Lambert
fuente
1
Los scripts de PowerShell requieren que se cambie la política de ejecución, si aún no lo ha hecho. Debería cambiarlo permanentemente o ejecutar PowerShell.exe con el argumento "-ExecutionPolicy RemoteSigned".
Patrick Seymour
0

Otro programa AutoIt3 :

<!--  --!>
;;; Define variables according to you
$speed  = 1        ; 0=instantly, 1=fastest, 100=slowest
$delay  = 100      ; milliseconds
$hotkey = "^+!c"   ; ^=Ctrl, +=Shift, !=Alt

;;; Hotkey function
Func GetMyMouse()
    MouseMove(@DesktopWidth / 2, @DesktopHeight / 2, $speed)
EndFunc

;;; Register hotkey
HotKeySet($hotkey, "GetMyMouse")

;;; Program body (busy wait)
While True
    Sleep($delay)
WEnd
mmdemirbas
fuente
0

Nircmd de Nir Sofer tiene la siguiente opción.

nircmd setcursor xy

Puede crear un acceso directo a esta línea de comando y asignarle cualquier tecla de acceso rápido. Hay muchas otras opciones para el cursor del mouse como se detalla en el archivo nircmd.chm.

usuario38660
fuente
Este es un buen método, excepto que parece ser lento (Windows tarda unos 3 segundos en ejecutarlo). Pero no requiere mucho más. Tuve que usar el acceso directo elevar para evitar la ventana emergente de seguridad de Windows.
-1

uhh ... no lo creo

pero en el tema de encontrar su mouse, PUEDE activar "sonar de puntero" para que su puntero se afine cuando presione la tecla de control. (actualmente en una Mac pero intentaré obtener capturas de pantalla en un momento y editarlo)

con respecto a la idea macro. Supongo que es plausible ... pero no conozco ninguna aplicación que ya tenga esto programado o cómo programarlo

mjrider
fuente