Python xlib warp_pointer не работает должным образом внутри игр

Я пытаюсь изменить указатель мыши с помощью python xlib. Я успешно сделал это, используя warp_pointer. Но когда я пытаюсь играть в такие игры, как Secret Maryo Chronicles, указатель мыши перемещается в крайний правый угол экрана, а не в указанное место. Почему это так? Кто-нибудь может мне с этим помочь?


person Rony Varghese    schedule 30.03.2011    source источник
comment
Можете быть более конкретными? Чего вы пытаетесь достичь с помощью warp_pointer? Как вы используете его с играми, в которых вы его примеряете?   -  person ssokolow    schedule 30.03.2011
comment
С помощью warp_pointer я пытаюсь переместить указатель мыши в любую конкретную позицию на экране. Он отлично работает на рабочем столе (в моем случае Ubuntu). Но когда я запускаю игру, программа работает, но указатель мыши перемещается в правый нижний угол экрана.   -  person Rony Varghese    schedule 31.03.2011


Ответы (2)


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

Я попробовал это, и это сработало, как и ожидалось, если вы думаете о координатах как об абсолютных координатах с 1,1 (или 0,0 ), начинающихся в верхнем левом углу окна.

from Xlib import X, display
import time

d = display.Display()
s = d.screen()
root = s.root
root.warp_pointer(500,500)
d.sync()

time.sleep( 5 )
root.warp_pointer(250,250)
d.sync()

time.sleep( 5 )
root.warp_pointer(100,100)
d.sync()

time.sleep( 5 )
root.warp_pointer(250,250)
d.sync()
person Atahualpa    schedule 13.06.2012

Я не знаком с SMC. Возможно, он использует сам warp_pointer. Я знаю, что многие игры имитируют поддержку относительного движения, только недавно представленную в XInput, и я думаю, что некоторые из них используют ее, чтобы спрятать мышь «в сторону». Вы пробовали это с играми, которые делают разные вещи с помощью мыши?

person ssokolow    schedule 31.03.2011