java robot机器人控制windows打开浏览器,访问指定网址

前言

上篇文章《java鼠标控制 robot机器人获取鼠标的屏幕坐标工具类》

在桌面浏览器快捷方式上,右键属性,选择后目标的内容复制粘贴到下面代码appPath中。

代码 

核心代码如下,在idea编辑器里,右键run运行

import java.awt.*;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.Transferable;
import java.awt.event.KeyEvent;
import java.io.File;
import java.io.IOException;
/**
 * Java实现在QQ上输入文字并发送
 * @author tarzan LIU
 *
 */
public class TestDeskTop {
    static Desktop deskApp = Desktop.getDesktop();

    static Robot robot;

    static {
        try {
            robot = new Robot();
        } catch (AWTException e) {
            e.printStackTrace();
        }
    }


    public static void main(String [] args) throws AWTException{
        openApp("C:\\Users\\liuya\\AppData\\Local\\Google\\Chrome\\Application\\chrome.exe");
        //浏览器最大化快捷键 alt+space+x
        keyPressWithAlt(robot,KeyEvent.VK_SPACE,KeyEvent.VK_X);
        //地址栏输入网址
        keyPressString(robot,"baidu.com");
        //回车
        keyPress(robot, KeyEvent.VK_ENTER);
    }

    //打开app
    public static void openApp(String appPath) {
        //判断当前系统释放支持Desktop提供的接口
        if (Desktop.isDesktopSupported()) {
            try {
                deskApp.open(new File(appPath));
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        //延迟1秒
        robot.delay(1000);
    }


    //Alt组合键
    public static void keyPressWithAlt(Robot r, int key1,int key2) {
        r.keyPress(KeyEvent.VK_ALT);
        r.keyPress(key1);
        r.keyPress(key2);
        r.keyRelease(key2);
        r.keyRelease(key1);
        r.keyRelease(KeyEvent.VK_ALT);
        r.delay(100);
    }

    //输入字符串
    public static void keyPressString(Robot r, String str) {
        //获取剪切板
        Clipboard clip = Toolkit.getDefaultToolkit().getSystemClipboard();
        //将传入字符串封装下
        Transferable tText = new StringSelection(str);
        //将字符串放入剪切板
        clip.setContents(tText, null);
        //按下Ctrl+V实现粘贴文本
        keyPressWithCtrl(r, KeyEvent.VK_V);
        r.delay(100);
    }

    //Ctrl组合键
    public static void keyPressWithCtrl(Robot r, int key) {
        r.keyPress(KeyEvent.VK_CONTROL);
        r.keyPress(key);
        r.keyRelease(key);
        r.keyRelease(KeyEvent.VK_CONTROL);
        r.delay(100);
    }


    //实现按一次某个按键
    public static void keyPress(Robot r, int key) {
        //按下键
        r.keyPress(key);
        //释放键
        r.keyRelease(key);
        r.delay(100);
    }
}

运行示意图

效果图

 相关知识 

java.awt.Robot是Java提供的一个类,用于模拟用户在图形界面上的鼠标和键盘操作。它可以自动化执行各种用户交互操作,如移动鼠标、点击按钮、输入文本等。在接下来的3000字内,我将为您详细解释java.awt.Robot技术的主要概念、用途和基本用法。

java.awt.Robot的主要概念:

  1. Robot类:Robot类是java.awt包中的一个核心类,它提供了一组方法来模拟鼠标和键盘事件。通过创建Robot对象,可以控制和模拟用户的输入操作。
  2. 图形界面组件:Robot类可以与其他AWT或Swing组件进行交互。它可以定位和操作图形界面上的按钮、文本框、滚动条等组件。

java.awt.Robot的主要用途:

  1. 自动化测试:Robot类可以用于编写自动化测试脚本,对图形界面应用程序进行自动化测试。通过模拟用户的操作,可以检查应用程序是否按预期运行,并捕获测量到的结果。
  2. UI脚本录制和回放:通过使用Robot类记录用户在图形界面上的交互操作,可以生成UI脚本。这些脚本可以重放,以便再次执行相同的操作,从而简化重复的任务。
  3. 辅助工具和自动化任务:Robot类可以用于创建辅助工具或执行自动化任务。例如,可以编写一个自动截图工具,让Robot类模拟用户按下截图快捷键,并将屏幕内容保存为图片。

基本使用方法:

1.创建Robot对象:首先,需要通过调用new Robot()构造函数创建一个Robot对象。

Robot robot = new Robot();

2.模拟鼠标操作:通过Robot对象的方法,可以模拟鼠标的各种操作,如移动、点击、拖拽等。 

robot.mouseMove(x, y); // 将鼠标移动到指定坐标(x, y) 
robot.mousePress(InputEvent.BUTTON1_DOWN_MASK); // 按下鼠标左键 
robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK); // 松开鼠标左键

3.模拟键盘操作:通过Robot对象的方法,可以模拟键盘的各种操作,如按键、释放、输入文本等。 

robot.keyPress(KeyEvent.VK_ENTER); // 按下Enter键 
robot.keyRelease(KeyEvent.VK_ENTER); // 松开Enter键 
robot.keyPress(KeyEvent.VK_SHIFT); // 按下Shift键 
robot.keyPress(KeyEvent.VK_A); // 按下A键 
robot.keyRelease(KeyEvent.VK_A); // 松开A键 
robot.keyRelease(KeyEvent.VK_SHIFT); // 松开Shift键

4.获取屏幕截图:通过Robot对象的方法,可以捕获屏幕上指定区域的截图,并将其保存为图片文件。 

Rectangle screenRect = new Rectangle(0, 0, screenWidth, screenHeight);
BufferedImage screenshot = robot.createScreenCapture(screenRect); 
ImageIO.write(screenshot, "png", new File("screenshot.png"));

总结: java.awt.Robot是Java提供的一个类,用于模拟用户在图形界面上的鼠标和键盘操作。它可以自动化执行各种用户交互操作,用于自动化测试、UI脚本录制回放、辅助工具等应用场景。通过创建Robot对象并调用相应的方法,可以模拟鼠标和键盘事件,实现对图形界面的控制。请注意,使用Robot类需要小心谨慎,确保不会滥用它的能力或违反安全性要求。此外,还可以进一步了解Robot类的其他方法和功能,以适应更复杂的需求和场景。

 

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

泰山AI

原创不易,感谢支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值