Существует ли ярлык Win7 для позиционирования мыши в центре основного экрана?

25

Я установил три монитора в Windows 7, и я иногда теряю, где находится мой курсор. Есть ли ярлык Windows для сброса положения мыши? Я предполагаю, что нет, но мог бы быть способ настроить простой макрос, который я мог бы связать с комбинацией клавиш, чтобы установить курсор в положение по умолчанию, такое как центр основного дисплея?

tehDorf
источник
6
Я мог бы написать вам программу, которая делает это, когда вы щелкаете мышью, но вам нужно будет найти курсор мыши и переместить его на значок программы, чтобы щелкнуть. :-(
Дэйв Беккер
1
@DaveBecker, а как насчет программы, которая его выполняет? Затем вы можете запустить его с помощью сочетания клавиш.
Hand-E-Food
1
Я лично думаю, что все должны включить курсор положения на кнопку по умолчанию. Каждый всегда сначала ищет окно программы , а потом думает о том, чтобы переместить курсор на него. Также я считаю, что каждый должен поменять свою схему курсора на курсор Extra Large Black, так как есть чума белого / светлого фона.
surfasb

Ответы:

27

Объединив несколько вышеперечисленных идей, я придумал этот сценарий. Это проверено и работает.

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, ваш курсор возвращается домой.

Изменить: Хотя это не кажется обязательным для моего компьютера, я добавил предложение Патрика в ярлык.

Hand-E-Food
источник
3
Сценарии PowerShell требуют изменения политики выполнения, если вы этого еще не сделали. Вам необходимо изменить его навсегда или запустить PowerShell.exe с аргументом «-ExecutionPolicy RemoteSigned».
Патрик Сеймур
@ Hand-E-Food Вы, должно быть, изменили политику выполнения на своем компьютере или что-то в этом роде, потому что я не смог получить ваш ответ на работу в письменном виде. Мне пришлось изменить цель на % systemroot% \ system32 \ windowspowershell \ v1.0 \ powershell.exe -ExecutionPolicy RemoteSigned "C: \ PathToScript \ CentreCursor.ps1", чтобы заставить его работать. Я переупорядочил аргументы, команда Патрика должна была прийти перед файлом. Я обновил ваш ответ, чтобы отразить это.
TehDorf
О да. Спасибо @ Hand-E-Food и всем остальным, кто ответил на этот вопрос!
TehDorf
Рад помочь! Это научило меня чему-то новому. (И «центр» - это вполне приемлемое написание за пределами США.) ;-)
Hand-E-Food
К вашему сведению, Windows 10 не будет принимать путь с пробелами, и% systemroot% не установлен. Мне пришлось запустить команду в каталоге с файлом и запустить его как C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe -ExecutionPolicy RemoteSigned. \
CenterCursor.ps1
13

Включение «Показывать местоположение указателя при нажатии клавиши CTRL» является одним из вариантов. Это особенно полезно, если в данный момент приложение, например кисть, меняет его на какой-то пользовательский указатель мыши, который труднее увидеть.

введите описание изображения здесь

Брайан
источник
2
Pointer Trails также очень полезны, они делают цель намного больше, когда вы поворачиваете мышь.
Скотт Чемберлен
8

Вы можете сделать это довольно легко с помощью программы под названием UltraMon .

В разделе настроек есть место для указания горячих клавиш. Вы можете увидеть скриншот, где я установил горячую клавишу для Crtl + Shift + C

введите описание изображения здесь

quickcel
источник
1
Выглядит хорошо, но 40 долларов - это немного, если это все, что хочет сделать пользователь.
Брайан
Это не бесплатно, вы можете поделиться бесплатными инструментами тоже.
YumYumYum
+1 В моей компании по умолчанию установлен Ultramon на каждом компьютере, и многие уже мои коллеги должны вам за это (предоставлено мной) :)
Павел
7

Следующая последовательность команд 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) для него с помощью сочетания клавиш по вашему выбору. :)

iglvzx
источник
3

Вот скрипт 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))
Патрик Сеймур
источник
1

Используя 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>)

Итак, небольшая проба и ошибка (и базовая математика) должны дать вам скрипт, который при запуске центрирует указатель мыши.

Эндрю Ламберт
источник
1
Сценарии PowerShell требуют изменения политики выполнения, если вы этого еще не сделали. Вам необходимо изменить его навсегда или запустить PowerShell.exe с аргументом «-ExecutionPolicy RemoteSigned».
Патрик Сеймур
0

Другая программа 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
источник
0

Nircmd от Nir Sofer имеет следующую опцию.

nircmd setcursor xy

Вы можете создать ярлык для этой командной строки и назначить ей любую горячую клавишу. Есть много других опций для курсора мыши, как описано в файле nircmd.chm.

user38660
источник
Это хороший метод, за исключением того, что он кажется медленным (для запуска Windows требуется около 3 секунд). Но не требует многого другого. Мне пришлось использовать ярлык повышения, чтобы предотвратить всплывающее окно безопасности Windows.
-1

эээ ... я так не думаю

но в вопросе поиска мыши вы МОЖЕТЕ включить «гидролокатор указателя», чтобы ваш указатель был заточен при нажатии клавиши управления. (в настоящее время на Mac, но я постараюсь получить снимки экрана через мгновение и отредактировать его в)

относительно макро идеи. Я думаю, это правдоподобно ... но я не знаю ни одного приложения, которое уже запрограммировано, или как программировать это сам

mjrider
источник