第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

在 Windows 上使用 java 鎖屏期間的屏幕截圖

在 Windows 上使用 java 鎖屏期間的屏幕截圖

小怪獸愛(ài)吃肉 2023-12-21 10:39:47
目的是只要 java 應(yīng)用程序正在運(yùn)行,無(wú)論屏幕鎖定如何,都可以進(jìn)行屏幕捕獲。我在交流中遇到了幾個(gè)類似的問(wèn)題,但所有這些問(wèn)題都與使用 Selenium 或某些 Windows 特定代碼有關(guān)。該代碼(見(jiàn)下文)用于java.awt.Robot進(jìn)行循環(huán)屏幕捕獲。該文件保存為 png。問(wèn)題是,當(dāng)用戶鎖定計(jì)算機(jī)時(shí),截取的屏幕截圖是鎖定屏幕,而不是電腦解鎖時(shí)底層屏幕的樣子。如何解決這個(gè)問(wèn)題?import java.awt.DisplayMode;import java.awt.GraphicsDevice;import java.awt.GraphicsEnvironment;import java.awt.Rectangle;import java.awt.Robot;import java.awt.image.BufferedImage;import java.io.File;import javax.imageio.ImageIO;public class Capture{    public static void main(String[] args) throws Exception {        GraphicsDevice screen = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();        DisplayMode dm = screen.getDisplayMode();        int[] size = {dm.getWidth(), dm.getHeight()};        Rectangle rect = new Rectangle(size[0], size[1]);        String path = "D:/img.png";        Robot rob = new Robot(screen);        File outfile = new File(path);        while (true) {            BufferedImage img = rob.createScreenCapture(rect);            ImageIO.write(img, "png", outfile);            Thread.sleep(1000);        }    }}環(huán)境Windows 10JDK 12
查看完整描述

1 回答

?
瀟瀟雨雨

TA貢獻(xiàn)1833條經(jīng)驗(yàn) 獲得超4個(gè)贊

在 Java 中,在鎖屏期間便攜式捕獲底層應(yīng)用程序是不可能的,也許在任何屏幕捕獲解決方案中也是如此。文檔說(shuō)Robot.createScreenCapture

“[它]創(chuàng)建一個(gè)包含從屏幕讀取的像素的圖像。......”

這意味著它Robot只能捕獲正在呈現(xiàn)到屏幕上的任何內(nèi)容,并且沒(méi)有概念/理解/編程能力來(lái)檢測(cè)其內(nèi)容,例如單個(gè)應(yīng)用程序、通知、小部件等。當(dāng)呈現(xiàn)的內(nèi)容是鎖屏?xí)r,那就是被捕獲。

這也意味著,當(dāng)沒(méi)有向其發(fā)送任何內(nèi)容時(shí)(假設(shè)監(jiān)視器/屏幕被操作系統(tǒng)的能源策略關(guān)閉,因此不一定會(huì)被渲染),則不會(huì)捕獲任何內(nèi)容(但可能是黑屏)。

為了實(shí)現(xiàn)您正在嘗試的目標(biāo),您需要應(yīng)用程序特定的掛鉤(例如通過(guò)它公開(kāi)的某些 API - 極不可能)或操作系統(tǒng)特定的調(diào)用或進(jìn)程探測(cè)。前者取決于應(yīng)用程序,后者則破壞可移植性。

關(guān)于一般不可能的備注:視頻會(huì)議/流媒體/屏幕錄制/遠(yuǎn)程訪問(wèn)應(yīng)用程序通常會(huì)在用戶之間共享應(yīng)用程序特定的屏幕。然而,應(yīng)用程序(“記錄器”)對(duì)其他應(yīng)用程序(“記錄器”)的與應(yīng)用程序無(wú)關(guān)的感知和訪問(wèn)必然由操作系統(tǒng)來(lái)調(diào)節(jié),從而破壞了可移植性。更不用說(shuō)它在鎖屏期間停止了。

對(duì)于音頻捕獲或任何其他數(shù)據(jù)流來(lái)說(shuō)同樣如此。作為格言,那么:

跨應(yīng)用程序數(shù)據(jù)捕獲要么由目標(biāo)應(yīng)用程序公開(kāi),要么由操作系統(tǒng)介導(dǎo)。


查看完整回答
反對(duì) 回復(fù) 2023-12-21
  • 1 回答
  • 0 關(guān)注
  • 291 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)