Я установил три монитора в Windows 7, и я иногда теряю, где находится мой курсор. Есть ли ярлык Windows для сброса положения мыши? Я предполагаю, что нет, но мог бы быть способ настроить простой макрос, который я мог бы связать с комбинацией клавиш, чтобы установить курсор в положение по умолчанию, такое как центр основного дисплея?
9 ответов
Объединив несколько вышеупомянутых идей, я придумал этот сценарий. Это проверено и работает.
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
Сохраните этот скрипт в удобной папке и создайте ярлык в меню «Все программы»:
Цель: % systemroot%\system32\windowspowershell\v1.0\powershell.exe -ExecutionPolicy RemoteSigned -File "C:\Path To Script\CentreCursor.ps1"
Сочетание клавиш: Ctrl + Alt + Shift + C
Выполнить: свернуто
Теперь всякий раз, когда вы нажимаете Ctrl+Alt+Shift+C, курсор возвращается домой.
Изменить: Хотя это не кажется обязательным для моего компьютера, я добавил предложение Патрика в ярлык.
Включение "Показывать местоположение указателя при нажатии клавиши CTRL" является одним из вариантов. Это особенно полезно, если в данный момент приложение, например кисть, меняет его на какой-то пользовательский указатель мыши, который труднее увидеть.
Вы можете сделать это довольно легко с помощью программы под названием UltraMon.
В разделе параметров есть место для указания горячих клавиш. Вы можете увидеть скриншот, где я установил горячую клавишу для Crtl + Shift + C
Следующая последовательность команд AutoHotkey мгновенно переместит мышь в центр основного дисплея:
CoordMode, Mouse, Screen
MouseMove, A_ScreenWidth/2, A_ScreenHeight/2, 0
Например, скомпилируйте следующий скрипт:
CoordMode, Mouse, Screen
MouseMove, A_ScreenWidth/2, A_ScreenHeight/2, 0
ExitApp
Затем вы можете создать ярлык (.lnk
) для него с помощью сочетания клавиш по вашему выбору. :)
Вот скрипт AutoIt, чтобы сделать это. AutoIt может скомпилировать свои сценарии в .exe, который затем можно назначить горячей клавише.
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))
Используя WMIC и Powershell (оба из которых уже должны быть установлены под Windows 7), это должно быть выполнимо.
Используя WMIC, вы можете получить ширину и высоту экрана:
C:\>wmic desktopmonitor get screenheight, screenwidth
ScreenHeight ScreenWidth
900 1440
и Powershell может установить положение мыши (заменив <X>
и <Y>
фактическими координатами):
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>)
Итак, небольшая проба и ошибка (и базовая математика) должны дать вам скрипт, который при запуске центрирует указатель мыши.
Другая программа 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
Nircmd от Nir Sofer имеет следующую опцию.
nircmd setcursor xy
Вы можете создать ярлык для этой командной строки и назначить ей любую горячую клавишу. Есть много других опций для курсора мыши, как описано в файле nircmd.chm.
гм ...Я так не думаю
но в вопросе поиска мыши вы МОЖЕТЕ включить "гидролокатор указателя", чтобы ваш указатель был заточен при нажатии клавиши управления. (в настоящее время на Mac, но я постараюсь получить снимки экрана через мгновение и отредактировать его в)
относительно макро идеи. Я думаю, это правдоподобно ... но я не знаю ни одного приложения, которое уже запрограммировано, или как программировать это сам