@lukepker

Как зафиксировать курсор мыши на месте по зажатию кнопки?

У меня инвалидность, связанная с двигательной активностью, и мне тяжело делать широкие движения мышью, например, от одного края монитора, до другого. Мне бы помог подобный алгоритм: двигаю курсор до середины экрана - зажимаю кнопку на клаве, чтобы курсор не двигался - передвигаю мышь обратно - отпускаю кнопку удержания курсора - двигаю курсор дальше. Эдакий эмулятор "отрыва мыши от коврика". Можете подсказать, как реализовать подобное?
П. С. Чувствительность мыши поднять не варик, потому что тогда станет трудно попадать по мелким элементам, например по кнопкам экранной клавиатуры
  • Вопрос задан
  • 70 просмотров
Пригласить эксперта
Ответы на вопрос 2
VoidVolker
@VoidVolker Куратор тега Windows
Dark side eye. А у нас печеньки! А у вас?
  1. Скачиваете nnCron: www.nncron.ru/download/nncron193b15.exe
  2. Устанавливаете с галочками автозапуска по умолчанию - т.е. не меняете, оставляете как есть (либо автозапуск для одного пользователя, если ПК для нескольких пользователей)
  3. В свойствах исполняемых файлов nncron.exe и tm.exe на вкладке "Совместимость" -> "Для всех пользователей" -> "Параметры DPI" -> "Разрешение: открою эту программу" и "Масштабирование: приложение".
  4. Русский мануал тут: https://nncron.ru/download/help_ru.zip - для удобства заменить на английский nnCron/doc/help.chm (там же в разделе есть инструкция по регистрации бесплатной версии)
  5. Качаете вот эти два плагина в каталог nnCron/plugins: https://www.nncron.ru/download/plugins/keystate.spf www.nncron.ru/download/plugins/vv/extwords.spf
  6. В контекстном меню иконки ннкрона в трее заходите "параметры" -> плагины и добавляете оба плагина, порядок важен: сначала keystate.spf, а потом уже extwords.spf.
  7. Далее в том же контекстном меню жмёте "редактировать" -> "purge-cron-log" -> вкладчка "дополнительно" и добавляете в конце задачи русский комментарий: \ Тест
  8. Сохраняете. Да, это костыль, чтобы добавить следующую задачу и виндовый блокнот сохранил всё в верной кодировке ANSI, а не UTF-8. Просто сделать именно так проще всего.
  9. Ну и в конце "редактировать" -> "Crontab: nncron.tab" и добавляете вот эту задачу и сохраняете:
    #( CursorReturn
    SingleInstance
    WatchHotKey: "^{F1}"
    Action:
    \ Подсказка по позиции курсора
    0x00000000 0xFFFFFF HINT-COLOR \ Тёмная тема
    
    \ Получаем позицию курсора
    MOUSE-POS
    
    \ Дублируем позицию курсора и задаём её как позицию подсказки
    2DUP HINT-POS
    \ Показываем подсказку 
    HINT: "<- Курсор"
    
    \ Ждём отпускания клавиши "контрол"
    VK_LCONTROL WAIT-KUP
    \ Возвращаем курсор в исходную позицию
    MOUSE-MOVE
    
    \ Закрываем подсказку
    HINT-OFF
    )#


    Всё, теперь по хоткею Control+F1 позиция курсора запомнится и при отпускании контрола курсор вернётся обратно с точностью до пикселя. Хинт добавлен для наглядности и что всё работает как надо - его анимация может быть раздражающей, поэтому вот эта же задача без хинта:
    #( CursorReturn
    SingleInstance
    WatchHotKey: "^{F1}"
    Action:
    \ Получаем позицию курсора
    MOUSE-POS
    \ Ждём отпускания клавиши "контрол"
    VK_LCONTROL WAIT-KUP
    \ Возвращаем курсор в исходную позицию
    MOUSE-MOVE
    )#

Ответ написан
Комментировать
Aetae
@Aetae
Тлен
Можно использовать ahk(v1.1) скрипт, примерно такой:
#SingleInstance Force
#Persistent

F3::
  BlockInput, MouseMove 
  KeyWait, F3
  BlockInput, MouseMoveOff
return

Тут пока нажата F3 будет заблокировано движение мыши. Можно поменять F3 на любую иную клавишу или сочетание.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы