锁定工作站时移动鼠标光标(java)
我需要在我的工作站上禁用长空闲。 我一直在使用一段代码,每隔一段时间在屏幕上移动鼠标,效果很好 最近,我们的安全部门采用了智能卡和生物识别登录政策, 这要求我的卡必须在键盘专用插槽中。 从那时起,麻烦开始了。 只要我登录,这个过程就可以正常工作,这意味着我的卡存在,但如果我的卡被移除,它就不能工作。 我一直在记录流程活动,一切正常,但鼠标光标不动 有人能给我一个方法或链接,让我可以解决这个问题吗 编辑 操作系统:Windows XP 这是负责移动鼠标的代码。 请注意,我已经记录了它的操作,并对其进行了测试:结果记录了条目,就好像代码已经运行,但鼠标光标没有在锁定的会话上移动一样 再次感谢锁定工作站时移动鼠标光标(java),java,mouse,Java,Mouse,我需要在我的工作站上禁用长空闲。 我一直在使用一段代码,每隔一段时间在屏幕上移动鼠标,效果很好 最近,我们的安全部门采用了智能卡和生物识别登录政策, 这要求我的卡必须在键盘专用插槽中。 从那时起,麻烦开始了。 只要我登录,这个过程就可以正常工作,这意味着我的卡存在,但如果我的卡被移除,它就不能工作。 我一直在记录流程活动,一切正常,但鼠标光标不动 有人能给我一个方法或链接,让我可以解决这个问题吗 编辑 操作系统:Windows XP 这是负责移动鼠标的代码。 请注意,我已经记录了它的操作,并对其
package AntiIdle;
import java.awt.*;
import java.util.Calendar;
import java.text.SimpleDateFormat;
class SimulateMouseAction implements Runnable {
/**
* Robot object used to move the mouse.
*/
private Robot iRobot;
/**
* Bed object, so thread could notify sleeping objects.
*/
private Bed bed;
/**
* Default constructor is neutralized.
*/
@SuppressWarnings("unused")
private SimulateMouseAction () { }
/**
* Constructs class with bed object.
*
* @param bed Bed object to notify the sleepers.
* @throws AWTException if Robot creation fails.
*/
public SimulateMouseAction (Bed bed) throws AWTException {
this.bed = bed;
iRobot = new Robot();
}
/**
* Activates tread.
*/
public void run() {
System.out.println(new SimpleDateFormat("d/M/yy hh:mm").format(Calendar.getInstance().getTime()) +
"Mouse start");
Dimension scrSize = Toolkit.getDefaultToolkit().getScreenSize();
int x, y;
for (int prcnt=0; prcnt<100; prcnt++) {
x = (int) scrSize.getWidth() * prcnt / 100;
y = (int) scrSize.getHeight() * prcnt / 100;
moveMouse(x, y);
}
y = (int) scrSize.getHeight() - 20;
for (int prcnt=100; prcnt>0; prcnt--) {
x = (int) scrSize.getWidth() * prcnt / 100;
moveMouse(x, y);
}
for (int prcnt=0; prcnt<100; prcnt++) {
x = (int) scrSize.getWidth() * prcnt / 100;
y = (int) scrSize.getHeight() * (100-prcnt) / 100;
moveMouse(x, y);
}
iRobot.mouseMove((int) scrSize.getWidth()/2, (int) scrSize.getHeight()/2);
System.out.println(new SimpleDateFormat("d/M/yy hh:mm").format(Calendar.getInstance().getTime()) +
"Mouse end");
bed.awakeTheSleepers();
}
/**
* Moves mouse cursor to given coordinates.
*
* @param x X coordinate.
* @param y Y coordinate.
*/
private void moveMouse(int x, int y) {
iRobot.mouseMove(x, y);
try {
Thread.sleep(10);
} catch(InterruptedException ie) {
ie.printStackTrace();
}
}
}
编辑
@马克·彼得斯:谢谢你的回复。看起来很有趣,他们给了我这个解决方案。。。我构建了一个java应用程序,它启动一些vb脚本,加载Excel并执行一些任务和创建报告。问题是,在我的工作站闲置一天后,它停止启动Excel。其他一切似乎都在工作java应用程序一直在工作——我已经在上面附加的代码中记录了它的活动以及鼠标移动器的活动。因此,正如您所看到的,您建议的安全问题并没有以任何方式得到解决。按照我的国家规定,我每年至少要连续休假一周。具有讽刺意味的是,这正是阻碍我履行职责的原因。
有什么建议吗?除非您提供一些代码和更详细的操作系统等,否则很可能会关闭。欢迎访问。一些提示-这不是一个典型的基于线程的讨论板。如果将来需要更新,请编辑您的问题。在问题的底部有这样一个链接。另外,花点时间看看格式化规则-代码缩进四个空格,不需要标记。不要担心下面的帖子,我已经编辑了你的问题,diamond mods会对你的帖子进行分类。当然:OS:win xp sp3 CPU:core 2 duo E8400@3ghz Ram:2 Gb你的安全部门对你规避策略有何看法?我可以想象,在没有经过授权和认证的人员参与的情况下,将工作站解锁是他们特别试图阻止的事情之一。因此,如果1他们同意,那么你为什么不直接要求他们为你提供一个策略覆盖,或者2如果他们不同意,那么你不认为你打开了公司的蠕虫罐头吗?此外,你不应该隐藏未使用的警告。在本例中,它告诉您一些有用的信息:在这里重写默认构造函数使其私有是完全没有意义的,因为当您指定重载时,默认构造函数不存在。没有需要中和的默认构造函数。