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-02
Spring+SpringMVC配置事務(wù)管理無效原因及解決辦法詳解
這篇文章主要介紹了Spring+SpringMVC配置事務(wù)管理無效原因及解決辦法詳解,具有一定借鑒價(jià)值,需要的朋友可以參考下2017-12-12
SpringBoot 如何實(shí)時(shí)刷新靜態(tài)文件
這篇文章主要介紹了SpringBoot如何實(shí)時(shí)刷新靜態(tài)文件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12
springboot配置文件中使用${}注入值的兩種方式小結(jié)
這篇文章主要介紹了springboot配置文件中使用${}注入值的兩種方式小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03
java調(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-02
Java中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

