Обтекание мышью в средах с несколькими мониторами

Я сделал немало исследований в этом. Есть программы, такие как Mousinity, которые допускают «обёртывание мышью». В случае, если вы знаете его по другому термину, именно тогда указатель мыши исчезнет с одной стороны экрана и появится на другой стороне экрана.

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

Недостаток этого вопроса таков:

Есть ли способ управления поведением указателя мыши с помощью какого-либо вызова API для Windows? РЕДАКТИРОВАТЬ: более конкретно, как API обрабатывает несколько мониторов? Где находится начало координатной плоскости?

Хотя я понимаю, что это будет намного сложнее, вот мой псевдокод для того, что я пытаюсь сделать:

if (mouse_position == side_of_screen_of_monitor1 && Mouse_is_being_moved off screen)
{
mouse_position == opposite_side_of_screen_of_monitor2
}

1

Решение

Начало координат — верхний левый угол основного монитора. Если вы поместили монитор слева от основного монитора, координаты X на этом мониторе будут отрицательными. Если монитор находится над или частично над основным монитором, их координаты y в этой области будут отрицательными.

GetSystemMetrics также имеет константы, которые относятся только к системе с несколькими мониторами. SM_XVIRTUALSCREEN и SM_YVIRTUALSCREEN определяют верхний левый угол виртуального экрана, SM_CXVIRTUALSCREEN и SM_CYVIRTUALSCREEN — вертикальные и горизонтальные измерения виртуального экрана.

Подробнее смотрите здесь:

Для вашей задачи я думаю, что вам, вероятно, нужно думать только о координатах виртуального экрана.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]