Dưới đây là câu trả lời dành cho Windows (không chắc chắn nếu alt + printScr hoạt động trên Linux: P)
Tôi đoán một cách để đạt được điều này
1. sử dụng lớp Robot bắn alt + printScreen Command (thao tác này ghi lại cửa sổ đang hoạt động vào khay nhớ tạm)
2. đọc khay nhớ tạm!
Dưới đây là hai đoạn mã thực hiện điều đó. Tôi đã không thực sự cố gắng, nhưng một cái gì đó mà tôi ghép nối với nhau.
Mã để cháy lệnh để có được cửa sổ đang hoạt động trên vào clipboard
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.KeyEvent;
public class ActiveWindowScreenShot
{
/**
* Main method
*
* @param args (not used)
*/
public static void main(String[] args)
{
Robot robot;
try {
robot = new Robot();
} catch (AWTException e) {
throw new IllegalArgumentException("No robot");
}
// Press Alt + PrintScreen
// (Windows shortcut to take a screen shot of the active window)
robot.keyPress(KeyEvent.VK_ALT);
robot.keyPress(KeyEvent.VK_PRINTSCREEN);
robot.keyRelease(KeyEvent.VK_PRINTSCREEN);
robot.keyRelease(KeyEvent.VK_ALT);
System.out.println("Image copied.");
}
}
Mã để đọc hình ảnh trên clipboard của
// If an image is on the system clipboard, this method returns it;
// otherwise it returns null.
public static Image getClipboard() {
Transferable t = Toolkit.getDefaultToolkit().getSystemClipboard().getContents(null);
try {
if (t != null && t.isDataFlavorSupported(DataFlavor.imageFlavor)) {
Image text = (Image)t.getTransferData(DataFlavor.imageFlavor);
return text;
}
} catch (UnsupportedFlavorException e) {
} catch (IOException e) {
}
return null;
}
Bạn có thể quản lý việc kiểm soát như bạn cần đến! Hãy cho tôi biết, nếu việc này giúp ích cho bạn. nhưng điều này chắc chắn là trên todo của tôi để thử nó ra!
Wow! Tôi chưa bao giờ nghĩ đến việc này. Tốt công việc giao phối, tôi sẽ thử nó cho chắc chắn. Giáng sinh vui vẻ! –
Giáng sinh vui vẻ! Hãy thử và cho biết nếu nó hoạt động! Một số làm thế nào 'không thể được thực hiện trong java' nghe quá khắc nghiệt với đôi tai của tôi! : P – Shaunak
Không thể tin rằng tôi đã nghĩ về điều này bằng cách bạn có thể nhận được bao nhiêu khung hình mỗi giây. – user4090