• Robot 类自动完成一些键盘或鼠标的动作小例子



    //程序流程:模拟鼠标左键点击 开始-->运行-->CMD-->DIR-->CLS-->EXIT
    //模拟右键点击 移动到右下角-->右键点击-->调整日期和时间-->退出
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.JOptionPane;


    //Test.java
    public class Test {
     public static void main(String[] args) throws Exception {
      final Robot rb = new Robot();
      new Thread(){
       public void run(){
        rb.delay(2000);
        //回车
        rb.keyPress(KeyEvent.VK_ENTER);
        rb.keyRelease(KeyEvent.VK_ENTER);
       }
      }.start();
      JOptionPane.showMessageDialog(null,"以下程序自动执行,包括本对话框,请不必进行人为干预. 如果不能正常执行程序,请先关闭输入法");
      
      //设置开始菜单的大概位置
      int x = 40;
      int y = Toolkit.getDefaultToolkit().getScreenSize().height-10;
      
      //鼠标移动到开始菜单,
      rb.mouseMove(x,y);
      rb.delay(500);
      
      //单击三次开始菜单
      for(int i=0; i<3; i++)
       pressMouse(rb,InputEvent.BUTTON1_MASK,500);
      rb.delay(1000);


      //运行CMD命令  r  cmd enter
      int[] ks = {KeyEvent.VK_R,KeyEvent.VK_C,KeyEvent.VK_M,KeyEvent.VK_D,KeyEvent.VK_ENTER,};
      pressKeys(rb,ks,500);
      rb.mouseMove(400,400);
      rb.delay(500);
      //运行DIR命令  dir enter
      ks = new int[]{KeyEvent.VK_D,KeyEvent.VK_I,KeyEvent.VK_R,KeyEvent.VK_ENTER};
      pressKeys(rb,ks,500);
      rb.delay(1000);
      //运行CLS命令 cls enter
      ks = new int[]{KeyEvent.VK_C,KeyEvent.VK_L,KeyEvent.VK_S,KeyEvent.VK_ENTER};
      pressKeys(rb,ks,500);
      rb.delay(1000);
      //运行EXIT命令 exit enter
      ks = new int[]{KeyEvent.VK_E,KeyEvent.VK_X,KeyEvent.VK_I,KeyEvent.VK_T,KeyEvent.VK_ENTER};
      pressKeys(rb,ks,500);
      rb.delay(1000);
      
      //右键测试
      x=Toolkit.getDefaultToolkit().getScreenSize().width-10;
      rb.mouseMove(x, y);
      //如果是双键鼠标,请改用InputEvent.BUTTON2_MASK试试,我没有这种鼠标
      pressMouse(rb,InputEvent.BUTTON3_MASK,500);
      //显示日期调整对话框 a
      pressKeys(rb,new int[]{KeyEvent.VK_A},1000);
      rb.delay(2000);
      pressKeys(rb,new int[]{KeyEvent.VK_ESCAPE},0);
      rb.delay(1000);
      new Thread(){
       public void run(){
        rb.delay(1000);
        //回车
        rb.keyPress(KeyEvent.VK_ENTER);
        rb.keyRelease(KeyEvent.VK_ENTER);
       }
      }.start();
      JOptionPane.showMessageDialog(null,"演示完毕!");
     }
     //鼠标单击,要双击就连续调用
     private static void pressMouse(Robot r,int m,int delay){
      r.mousePress(m);
      r.delay(10);
      r.mouseRelease(m);
      r.delay(delay);
     }
     //键盘输入
     private static void pressKeys(Robot r,int[] ks,int delay){
      for(int i=0; i<ks.length; i++){
       r.keyPress(ks[i]);
       r.delay(10);
       r.keyRelease(ks[i]);
       r.delay(delay);
      }
     }
    }

  • 相关阅读:
    python-django-自定义分页
    self.user = serializer_field.context['request'].user KeyError: 'request
    无法ssh远程的解决办法
    关于put和patch区别的一篇文章
    一遍关于django rest framework serializer比较详细的笔记
    vim 简单配置(根据编程语言不同,自动缩进)
    django rest framework 的api返回html
    django rest frmaework jwt认证
    django 信号
    刘江的博客
  • 原文地址:https://www.cnblogs.com/java-of-hnj/p/5993107.html
Copyright © 2020-2023  润新知