Как разрешить курсору мыши пересекать верхний край экрана в Windows 10?

Мне нужно, чтобы курсор мыши пересекал верхний край экрана. И в идеале, чтобы активировать / деактивировать эту опцию с помощью некоторого кода Python. Я не мог найти ни малейшего понятия, как это сделать. Любая идея?

Причина:

Я кодирую психологический эксперимент на питоне (психопия). Я должен постоянно отклонять курсор мыши вниз, когда он перемещается в определенной области экрана. Я делал это, изменяя положение курсора в соответствии с желаемым отклонением с помощью некоторых функций pymouse / psychopy.

Однако, когда я проводил этот эксперимент на новом компьютере (я должен), он систематически зависал. Итак, я попробовал новый метод: отображение формы (круга) в психопии, которая перемещается в соответствии с реальным курсором + отклонение, при этом реальный курсор остается неизменным (просто скрывая его). Однако, поскольку настоящий курсор не может пересекать верхний край экрана, он блокируется на определенной высоте, что препятствует перемещению созданного мной вторичного курсора в виде круга. Другими словами, этот вторичный курсор не может двигаться так высоко, как должен, потому что настоящий курсор не может подниматься выше верхнего края экрана.

Если у вас есть какие-либо советы по более полному вопросу, пожалуйста, дайте мне знать!

Благодарность!


person G.Gab    schedule 11.02.2020    source источник


Ответы (1)


Как вы обнаружили, подход рисования собственного стимула, управляемого положением мыши, а не манипулирования указателем мыши операционной системы, вероятно, более надежен и гибок. Так что определенно продолжайте придерживаться этого подхода.

Однако PsychoPy полагается на операционную систему, чтобы сообщить координаты мыши, и они по своей сути ограничены пределами экрана. Поэтому вам нужно будет придумать свои собственные обходные пути, чтобы разрешить перемещение указателя за пределами экрана.

  • Вы можете попробовать посмотреть, что происходит, используя несколько мониторов, то есть настроив второй монитор (не обязательно видимый для участника и не обязательно даже в той же комнате), так что он виртуально настроен так, чтобы находиться над основным монитором, с мышь умела к нему переходить. Но я понятия не имею, как PsychoPy будет обрабатывать координаты мыши, если указатель переместится на второй экран.
  • В качестве альтернативы, когда координата y мыши достигает нуля, вы можете рассчитать прогнозируемую траекторию для указателя мыши на основе его предыдущего движения. PsychoPy с радостью позволит вам установить позицию для стимула, которая частично (или полностью) выходит за границы окна, так что это позволит вашему вторичному изображению курсора плавно переходить за пределы экрана.

    Как сделать такое предсказание? Вы могли бы сделать какую-то грубую линейную интерполяцию, основанную на сохранении запаздывающей записи положения мыши в виде нескольких отсчетов назад во времени, и просто продолжать следовать по прямой линии между этим и последним положением внутри окна. Я не уверен, что это актуально для чего-то, что может захватывать изогнутые траектории и скорость, но попробуйте поискать в Google прогнозирующий фильтр Калмана для отслеживания мыши Python

person Michael MacAskill    schedule 11.02.2020
comment
Blender автоматически перемещает указатель мыши к противоположной стороне области просмотра, когда он используется в режиме относительного позиционирования. Однако это не сработает, если поверх Blender есть еще одно окно. - person John Dvorak; 12.02.2020
comment
Большое спасибо! Для второго варианта это может добавить шума и быть довольно дорогостоящим с точки зрения кодирования и всего остального. И я хотел бы получить точные измерения траектории, например, изменение направления, которое на самом деле не является предсказуемым. Пока что первый вариант звучит лучше всего. В идеале мне нужно установить виртуальный монитор, расположенный над реальным экраном. Есть предложения о том, как это сделать? - person G.Gab; 12.02.2020
comment
Я не очень люблю Windows, но это то, что нужно настроить и настроить в настройках монитора панели управления Windows. Там будут настройки, позволяющие расширить рабочий стол с одного экрана на другой и упорядочить пространственно, как мониторы соотносятся друг с другом, с точки зрения того, как мышь будет переходить с одного экрана на другой. например windowscentral.com/ Сказав это, Я понятия не имею, как PsychoPy будет работать с сообщением о положении мыши, когда указатель покидает основной экран - он может просто придерживаться граничного значения. - person Michael MacAskill; 13.02.2020