锁定工作站时移动鼠标光标(java)

锁定工作站时移动鼠标光标(java),java,mouse,Java,Mouse,我需要在我的工作站上禁用长空闲。 我一直在使用一段代码,每隔一段时间在屏幕上移动鼠标,效果很好 最近,我们的安全部门采用了智能卡和生物识别登录政策, 这要求我的卡必须在键盘专用插槽中。 从那时起,麻烦开始了。 只要我登录,这个过程就可以正常工作,这意味着我的卡存在,但如果我的卡被移除,它就不能工作。 我一直在记录流程活动,一切正常,但鼠标光标不动 有人能给我一个方法或链接,让我可以解决这个问题吗 编辑 操作系统:Windows XP 这是负责移动鼠标的代码。 请注意,我已经记录了它的操作,并对其

我需要在我的工作站上禁用长空闲。 我一直在使用一段代码,每隔一段时间在屏幕上移动鼠标,效果很好

最近,我们的安全部门采用了智能卡和生物识别登录政策, 这要求我的卡必须在键盘专用插槽中。 从那时起,麻烦开始了。 只要我登录,这个过程就可以正常工作,这意味着我的卡存在,但如果我的卡被移除,它就不能工作。 我一直在记录流程活动,一切正常,但鼠标光标不动

有人能给我一个方法或链接,让我可以解决这个问题吗

编辑

操作系统: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如果他们不同意,那么你不认为你打开了公司的蠕虫罐头吗?此外,你不应该隐藏未使用的警告。在本例中,它告诉您一些有用的信息:在这里重写默认构造函数使其私有是完全没有意义的,因为当您指定重载时,默认构造函数不存在。没有需要中和的默认构造函数。