Java: mousePress() 并不总是有效
Java: mousePress() does not always work
我在 Java 中制作了一个简单的实用程序,它可以让鼠标在任何地方点击,每 X 毫秒一次:
import java.awt.Robot;
import java.awt.event.InputEvent;
public class Main
{
public static final int SLEEP_TIME = 60000;
public static void main(String[] args)
{
try
{
Robot r = new Robot();
int i = 0;
while(true)
{
doNothing();
System.out.println(++i + ") Pressed");
r.mousePress(InputEvent.BUTTON1_DOWN_MASK);
r.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
}
}catch(Exception e)
{
e.printStackTrace();
}
}
private static void doNothing()
{
long endTime = System.currentTimeMillis() + SLEEP_TIME;
while(System.currentTimeMillis() < endTime)
{
//Do nothing
}
}
}
我成功了,因为由于外部原因,安装程序中有一个按钮,我必须每隔 X 分钟按一次,因为它出现故障。
所以这个小程序在任何地方(桌面、Chrome 等)都能正常工作,除了安装程序。
我要按的按钮是这样的,"Reanudar":
See here
因此在 Eclipse 中似乎操作已完成(它每次都打印一条消息)但它就是不起作用。
有什么帮助吗?提前致谢。
我在使用这些方法时遇到的两个主要问题如下:
- 按下和释放之间的延迟。添加一个轻微的延迟,我想它可能会工作得更好。
- 应用程序本身有一些东西可以阻止这种类型的输入。这在大型应用程序中尤其常见(尤其是那些完全拒绝使用 bots/macros 的应用程序)。我怀疑这是问题所在,但根据应用程序可能值得研究。
我将从这里开始,看看您能找到什么。至少添加一些延迟和 post 更多讨论的结果。
找到解决方案!
我的一个朋友成功地指出,由于这个安装程序是 运行 管理员,它可能无法被 non-Administrator Eclipse 程序点击。
所以 我 运行 Eclipse 和我的程序作为管理员 并且它成功了!
感谢我得到的这两个答案,希望我的答案能解决其他人的相关问题!
我在 Java 中制作了一个简单的实用程序,它可以让鼠标在任何地方点击,每 X 毫秒一次:
import java.awt.Robot;
import java.awt.event.InputEvent;
public class Main
{
public static final int SLEEP_TIME = 60000;
public static void main(String[] args)
{
try
{
Robot r = new Robot();
int i = 0;
while(true)
{
doNothing();
System.out.println(++i + ") Pressed");
r.mousePress(InputEvent.BUTTON1_DOWN_MASK);
r.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
}
}catch(Exception e)
{
e.printStackTrace();
}
}
private static void doNothing()
{
long endTime = System.currentTimeMillis() + SLEEP_TIME;
while(System.currentTimeMillis() < endTime)
{
//Do nothing
}
}
}
我成功了,因为由于外部原因,安装程序中有一个按钮,我必须每隔 X 分钟按一次,因为它出现故障。
所以这个小程序在任何地方(桌面、Chrome 等)都能正常工作,除了安装程序。
我要按的按钮是这样的,"Reanudar": See here
因此在 Eclipse 中似乎操作已完成(它每次都打印一条消息)但它就是不起作用。
有什么帮助吗?提前致谢。
我在使用这些方法时遇到的两个主要问题如下:
- 按下和释放之间的延迟。添加一个轻微的延迟,我想它可能会工作得更好。
- 应用程序本身有一些东西可以阻止这种类型的输入。这在大型应用程序中尤其常见(尤其是那些完全拒绝使用 bots/macros 的应用程序)。我怀疑这是问题所在,但根据应用程序可能值得研究。
我将从这里开始,看看您能找到什么。至少添加一些延迟和 post 更多讨论的结果。
找到解决方案! 我的一个朋友成功地指出,由于这个安装程序是 运行 管理员,它可能无法被 non-Administrator Eclipse 程序点击。 所以 我 运行 Eclipse 和我的程序作为管理员 并且它成功了!
感谢我得到的这两个答案,希望我的答案能解决其他人的相关问题!