java实现人工智能化屏幕监控窗口

时间:2021-01-09 04:06:49

具体代码实现(含注释)

public class Main{
    public static void main(String[] args) throws Exception{
        /* test code */
    }

    /** *用于实时监控屏幕的窗口 *@author chengxi *@param void *@return void */
    public static void mvcontroll() throws Exception{

        /* 建立一个监控屏幕的窗口 */
        JFrame frame = new JFrame("人工智能化屏幕监控系统") ;
        frame.setSize(600,600) ;
        frame.setVisible(true) ;
        /* 设置总是显示在顶部 */
        frame.setAlwaysOnTop(true) ;
        /* 获取默认的工具包 */
        Toolkit tk = Toolkit.getDefaultToolkit() ;
        /* 使用工具包获取屏幕的大小,这是创建工具包的唯一作用 */
        Dimension dm = tk.getScreenSize() ;
        /* 创建图像的显示区域 */
        JLabel imageLabel = new JLabel() ;
        frame.add(imageLabel) ;
        /* 创建一个机器人 */
        Robot robot = new Robot() ;
        /* 持续监控屏幕 */
        while(true) {
            /* 创建用于显示屏幕分享部分的区域,填入x/y/width/height Rectangle rec = new Rectangle(frame.getWidth() , 0 , (int)dm.getWidth() - frame.getWidth() , (int)dm.getHeight()) ; /* 根据屏幕分享的当前分享图像创建一个图像对象 */
            BufferedImage bufimg = robot.createScreenCapture(rec)) ;
            /* 实时显示在图像显示区域中 */
            imageLabel.setIcon(new ImageIcon(bufimg)) ;
        }
    }

    /** *打开指定的路径 public static void midopenQQ(String path) throws Exception{ Desktop desktop = Desktop.getDesktop() ; /* 打开指定的uri所指定的应用程序 */
        desktop.open(new File(path)) ;
        /* 创建一个机器人 */
        Robot robot = new Robot() ;
        /* 因为创建机器人需要时间,因此在后续操作之前需要进行延迟加载 */
        robot.delay(2000) ;
        /* 使用robot的mouseMove方法将鼠标的光标移动到指定的位置上,这里我设置的是QQ界面的登录按钮上面 */
        robot.mouseMove(709,519) ;
        /* 定义鼠标事件:按下 */
        robot.mousePress(InputEvent.BUTTON1_DOWN_MASK) ;
        /* 定义鼠标事件:放开 */
        robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK) ;
        /* 事件的延迟 */
        robot.delay(300) ;
    }

    /** *简单的打开path指定的路径所在的应用程序 *@author chengxi *@param String path *@return void */
    public static void easyopenQQ(String path) throws Exception{
        Desktop desktop = Desktop.getDesktop() ;
        /* 打开指定的文件 */
        desktop.open(new File(path)) ;
    }

    /** *打开uri指定的网址 *@author chengxi *@param String uri *@return void */
    public static void openBrowse(String uri) throws Exception{
        /* 允许java程序使用在桌面上注册了的所有应用程序 */
        Desktop desktop = Desktop.getDesktop() ;
        /* 使用默认的浏览器打开指定uri */
        desktop.browse(new URI("http://www.baidu.com")) ;
    }