Контроллер мыши Java

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

Robot mouseControler ;
try {
mouseControler = new Robot();
} catch (AWTException e) {
e.printStackTrace();
}

mouseControler.mouseMove(newRenderedPos.x,newRenderedPos.y);

Он отлично работает на моем рабочем столе, но если я начинаю использовать какое-то конкретное полноэкранное приложение, оно ведет себя странно:

В эмуляторе MAME он просто не работает, в то время как с моей обычной мышью (моя программа просто игнорируется).

На Virtual Cop 2 (версия для ПК) игра, кажется, выходит за рамки координат. Если робот отправляет координату 0,1,0,1, то вместо перемещения мыши в координате 0,1,0,1 на экране, как на рабочем столе, он перемещает мышь с 0,1,0,1 (перемещение вниз, немного вправо).

В чем проблема и как я могу это исправить?


person Orion    schedule 30.01.2014    source источник
comment
Я не уверен, что это ваша проблема, но любые полноэкранные приложения, которые работают с меньшим разрешением, чем рабочий стол (Virtual Cop? MAME?), Будут иметь другой набор координат, чем рабочий стол, поэтому ваша мышь не будет перемещаться туда, куда вы хотите . Решением было бы проверить, есть ли другое полноэкранное разрешение, а затем соответственно масштабировать координаты X / Y.   -  person sorifiend    schedule 31.01.2014
comment
Это происходит в House of the Dead 1 (у которого действительно низкое разрешение), но я могу справиться с этим с помощью своего приложения. Настоящая проблема заключается в том, что Java-робот вообще не работает на MAME и действует по-другому на Virtual Cop 2, как описано выше.   -  person Orion    schedule 31.01.2014


Ответы (1)


Мой комментарий стал большим, поэтому разместите его здесь.

Для "Virtual Cop 2":

Если ваша программа правильно работает в Windows, то есть большая вероятность, что решение будет таким же, как и для «Дома мертвых 1», вероятно, это проблема разрешения (или проблема округления с целыми и двойными числами?).

Для МАМЕ это не так просто:

Прежде чем продолжить чтение, попробуйте перейти по ссылке ниже, если это не сработает: Судя по тому, что вы говорите, и беглому просмотру сайта MAME, он использует свою собственную виртуальную систему управления, чтобы старые игры работали правильно. Итак, если это верно, то MAME не зависит от элементов управления Windows, и класс Robot не будет работать должным образом или вообще, если вы не сможете узнать, как MAME использует мышь, а затем написать какой-то конкретный код только для MAME.


Это может решить вашу проблему с MAME. Для получения дополнительной информации нажмите ссылку:

Почему не работает моя мышь или трекбол? (Взято с сайта MAME) :

  • Наиболее распространенное решение - в mame.ini заменить "mouse 0" на mouse 1.
person sorifiend    schedule 02.02.2014