Я пытаюсь имитировать левый клик в другой программе, используя awt.robot со следующим кодом:Java.awt.robot mousepress не оказывает влияния
int mask = InputEvent.BUTTON1_DOWN_MASK;
bot.mouseMove(x, y);
bot.mousePress(mask);
bot.mouseRelease(mask);
В то время как это перемещается мышь на правильную часть экрана другая программа, похоже, не получает клик. Что я делаю не так?
В некоторых других программах этот же метод производит клик, но в одной программе он не действует.
Я попытался Thread.sleep()
подождать 30-300 миллисекунд между mouseMove и mousePress, но это не повлияло.
Нужно ли использовать JNI и собственный API для Windows, чтобы достичь этого? Я на Windows 8.
1) Чтобы лучше помочь, опубликуйте [SSCCE] (http://sscce.org/). 2) * «Я попробовал« Thread.sleep() '» * Попробуйте вместо этого ['delay (int)'] (http://docs.oracle.com/javase/7/docs/api/java/awt/Robot .html # delay% 28int% 29) или ['setAutoWaitForIdle (boolean)'] (http://docs.oracle.com/javase/7/docs/api/java/awt/Robot.html#setAutoWaitForIdle%28boolean% 29)/[ 'waitForIdle()'] (http://docs.oracle.com/javase/7/docs/api/java/awt/Robot.html#waitForIdle%28%29). –