Java-робот не будет работать, когда Chrome находится в фокусе

У меня странная проблема. Я пытаюсь сделать несколько кликов с классом робота в java. Все работает нормально, за исключением случаев, когда хром находится в фокусе. Это мой метод:

public static void click(int X, int Y) {
    PointerInfo info = MouseInfo.getPointerInfo();
    Point p = info.getLocation();
  //robo.mouseRelease(InputEvent.BUTTON1_MASK);
    robo.mouseMove(X, Y);
    robo.mousePress(InputEvent.BUTTON1_MASK);
    robo.mouseRelease(InputEvent.BUTTON1_MASK);
    System.out.println("Clicked at X: "+X+" Y: "+Y);
  //robo.mouseMove((int) p.getX(), (int) p.getY());
}

Он просто не будет двигаться или щелкать, когда Chrome сфокусирован. Если я переключаюсь, например, на блокнот, он работает.

Есть ли в Chrome какая-то защита от макросов?

Спасибо хорошего дня!


person Sorin Grecu    schedule 22.08.2014    source источник
comment
Какое отношение Chrome имеет к Java? Вы разрабатываете апплет, работающий внутри Chrome?   -  person markspace    schedule 23.08.2014
comment
Я знаю, что это не имеет к этому никакого отношения или, по крайней мере, не должно, но оно просто не будет двигать мышь и щелкать, когда Chrome находится в фокусе. Я не могу понять, в чем проблема. И нет, это не апплет.   -  person Sorin Grecu    schedule 23.08.2014
comment
Не знаю, программа Java все еще работает, когда Chrome находится на переднем плане? Если ваша JVM приостановлена ​​​​в фоновом режиме, она, очевидно, не будет работать.   -  person markspace    schedule 23.08.2014
comment
Да. Я делаю клики внутри таймера каждые 15 секунд, у меня есть графический интерфейс обратного отсчета, который всегда сверху. Если я переключусь на хром, мышь не будет двигаться или щелкать. Если я переключусь, например, на teamviewer или любое другое приложение, оно будет двигаться и щелкать. Очень странно.   -  person Sorin Grecu    schedule 23.08.2014
comment
Больше похоже на Windows/Linux/независимо от вашей платформы. Chrome может запрашивать какой-то эксклюзивный фокус, а не обычный общий фокус. Я знаю, что Windows и Java имеют полноэкранный эксклюзивный режим, так что, возможно, Chrome использует что-то подобное? Я бы задал еще раз как вопрос о Windows, вы можете получить больше информации там.   -  person markspace    schedule 23.08.2014


Ответы (1)


Ну, я подозревал, что проблема с Windows с самого начала, так как после последней переустановки у меня были некоторые проблемы с ней. У меня была такая же винда из моего скрытого раздела в течение 4 лет, переустанавливая ее каждые 4-6 месяцев. На прошлой неделе, когда я переустановил его, у меня возникли проблемы с разрешениями из ниоткуда. Я не мог удалять, перемещать, копировать, получать доступ к материалам и т. д. Пришлось играть с собственностью и прочее. Не знаю, откуда это взялось, я не разрешал никаких обновлений Windows. Если только он не обновил мои файлы настройки скрытых разделов, что я не знаю, возможно ли это.

Итак, прошлой ночью я подумал, давайте активируем скрытую учетную запись администратора и посмотрим, сохраняется ли проблема. Ну, это не так. А теперь я вернулся к своему обычному аккаунту, и теперь все в порядке.

Краткая версия: включена скрытая учетная запись администратора в Windows 7, теперь проблема исчезла для обеих учетных записей. Хорошего дня и спасибо за помощь!

person Sorin Grecu    schedule 23.08.2014