java實(shí)現(xiàn)人工智能化屏幕監(jiān)控窗口
本文實(shí)例為大家分享了java實(shí)現(xiàn)人工智能化屏幕監(jiān)控窗口的具體代碼,供大家參考,具體內(nèi)容如下
具體代碼實(shí)現(xiàn)(含注釋)
public class Main{ public static void main(String[] args) throws Exception{ /* test code */ } /** *用于實(shí)時(shí)監(jiān)控屏幕的窗口 *@author chengxi *@param void *@return void */ public static void mvcontroll() throws Exception{ /* 建立一個(gè)監(jiān)控屏幕的窗口 */ JFrame frame = new JFrame("人工智能化屏幕監(jiān)控系統(tǒng)") ; frame.setSize(600,600) ; frame.setVisible(true) ; /* 設(shè)置總是顯示在頂部 */ frame.setAlwaysOnTop(true) ; /* 獲取默認(rèn)的工具包 */ Toolkit tk = Toolkit.getDefaultToolkit() ; /* 使用工具包獲取屏幕的大小,這是創(chuàng)建工具包的唯一作用 */ Dimension dm = tk.getScreenSize() ; /* 創(chuàng)建圖像的顯示區(qū)域 */ JLabel imageLabel = new JLabel() ; frame.add(imageLabel) ; /* 創(chuàng)建一個(gè)機(jī)器人 */ Robot robot = new Robot() ; /* 持續(xù)監(jiān)控屏幕 */ while(true) { /* 創(chuàng)建用于顯示屏幕分享部分的區(qū)域,填入x/y/width/height Rectangle rec = new Rectangle(frame.getWidth() , 0 , (int)dm.getWidth() - frame.getWidth() , (int)dm.getHeight()) ; /* 根據(jù)屏幕分享的當(dāng)前分享圖像創(chuàng)建一個(gè)圖像對(duì)象 */ BufferedImage bufimg = robot.createScreenCapture(rec)) ; /* 實(shí)時(shí)顯示在圖像顯示區(qū)域中 */ imageLabel.setIcon(new ImageIcon(bufimg)) ; } } /** *打開指定的路徑 public static void midopenQQ(String path) throws Exception{ Desktop desktop = Desktop.getDesktop() ; /* 打開指定的uri所指定的應(yīng)用程序 */ desktop.open(new File(path)) ; /* 創(chuàng)建一個(gè)機(jī)器人 */ Robot robot = new Robot() ; /* 因?yàn)閯?chuàng)建機(jī)器人需要時(shí)間,因此在后續(xù)操作之前需要進(jìn)行延遲加載 */ robot.delay(2000) ; /* 使用robot的mouseMove方法將鼠標(biāo)的光標(biāo)移動(dòng)到指定的位置上,這里我設(shè)置的是QQ界面的登錄按鈕上面 */ robot.mouseMove(709,519) ; /* 定義鼠標(biāo)事件:按下 */ robot.mousePress(InputEvent.BUTTON1_DOWN_MASK) ; /* 定義鼠標(biāo)事件:放開 */ robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK) ; /* 事件的延遲 */ robot.delay(300) ; } /** *簡(jiǎn)單的打開path指定的路徑所在的應(yīng)用程序 *@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指定的網(wǎng)址 *@author chengxi *@param String uri *@return void */ public static void openBrowse(String uri) throws Exception{ /* 允許java程序使用在桌面上注冊(cè)了的所有應(yīng)用程序 */ Desktop desktop = Desktop.getDesktop() ; /* 使用默認(rèn)的瀏覽器打開指定uri */ desktop.browse(new URI("http://www.baidu.com")) ; }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Redisson RedLock紅鎖加鎖實(shí)現(xiàn)過程及原理
本文主要介紹了Redis中Redisson紅鎖(Redlock)使用原理,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02Spring+SpringMVC配置事務(wù)管理無效原因及解決辦法詳解
這篇文章主要介紹了Spring+SpringMVC配置事務(wù)管理無效原因及解決辦法詳解,具有一定借鑒價(jià)值,需要的朋友可以參考下2017-12-12SpringBoot 如何實(shí)時(shí)刷新靜態(tài)文件
這篇文章主要介紹了SpringBoot如何實(shí)時(shí)刷新靜態(tài)文件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12springboot配置文件中使用${}注入值的兩種方式小結(jié)
這篇文章主要介紹了springboot配置文件中使用${}注入值的兩種方式小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03java調(diào)用webService接口的代碼實(shí)現(xiàn)
本文主要介紹了java調(diào)用webService接口的代碼實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02Java中HashMap和TreeMap的區(qū)別深入理解
首先介紹一下什么是Map。在數(shù)組中我們是通過數(shù)組下標(biāo)來對(duì)其內(nèi)容索引的,而在Map中我們通過對(duì)象來對(duì)對(duì)象進(jìn)行索引,用來索引的對(duì)象叫做key,其對(duì)應(yīng)的對(duì)象叫做value2012-12-12