Java 中 DirectX 程序的全屏捕获(Javacv?)

2024-02-24

[对于Windows] 我知道可以捕获在 C# 语言下运行的 DirectX 程序的屏幕,但是您知道 Java 的一些示例代码吗?

我实际上面临着同样的问题使用java在全屏应用程序中截取屏幕截图? https://stackoverflow.com/questions/10359754/take-screen-shots-inside-of-full-screen-applications-with-java?rq=1。机器人课程没有帮助,也没有效果。

但我还没有在互联网上找到任何与此相关的 java 代码示例。 感谢您就该主题提供的任何帮助。


由于我对此进行了更多研究,另请参阅:

import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.event.KeyEvent;
import java.awt.image.BufferedImage;
import javax.swing.*;

import javax.imageio.ImageIO;
import java.io.File;

public class ClipboardScreenshot {

    public static void main(String[] args) throws Exception {
        // get the screenshot
        Robot robot = new Robot();
        robot.keyPress(KeyEvent.VK_PRINTSCREEN);
        robot.delay(40);
        robot.keyRelease(KeyEvent.VK_PRINTSCREEN);
        robot.delay(404);

        Clipboard cb = Toolkit.getDefaultToolkit().getSystemClipboard();
        DataFlavor[] flavors = cb.getAvailableDataFlavors();
        System.out.println("After: ");
        for (DataFlavor flavor : flavors) {
            System.out.println(flavor);
            if (flavor.toString().indexOf("java.awt.Image")>0) {
                Object o = cb.getData(flavor);
                Image i = (Image)o;
                // ImageIO will not write an Image
                // It will write a BufferedImage (a type of RenderedImage)
                BufferedImage bi = new BufferedImage(
                        i.getWidth(null),
                        i.getHeight(null),
                        BufferedImage.TYPE_INT_RGB);
                Graphics2D g = bi.createGraphics();
                g.drawImage(i, 0, 0, null);
                g.dispose();

                JScrollPane sp = new JScrollPane(new JLabel(new ImageIcon(bi)));
                sp.setPreferredSize(new Dimension(800,600));
                JOptionPane.showMessageDialog(null, sp);
                File f = new File(
                        System.getProperty("user.home") + 
                        File.separator + 
                        "the.png");
                ImageIO.write(bi, "png", f);
            }
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 中 DirectX 程序的全屏捕获(Javacv?) 的相关文章

随机推荐

  • 指数超出范围。必须为非负数且小于集合的大小

    我在跟踪我的数据密钥时收到此错误 我不确定为什么我的数据密钥索引超出范围 这是我的代码 protected void GridView1 RowDataBound object sender GridViewRowEventArgs e v
  • Bootstrap 轮播中的 Highcharts 内容不会根据轮播自动调整大小

    我有一个高图表作为引导程序轮播中第二个项目的内容 div 内容 如果它位于第一个轮播幻灯片 项目上 它的大小调整得很好 但是 如果高图表位于第二张幻灯片上 则滑入时不会调整大小 如果不是第一个可见的轮播幻灯片 项目 如何自动调整轮播内容的大
  • window.openDatabase() 和 window.sqlitePlugin.openDatabase() 函数之间的区别?

    使用 Cordova 版本 3 x 和 Android 版本 2 x 至 4 x 我想知道 我的理解是否正确 所有 Android 设备默认都有一个用于创建 sqlite 数据库的 sqlite 程序 接口 上述两个数据库函数调用是否在设备
  • 如何使用 Android Google 地图应用程序的双击标记打开新活动?

    我正在尝试使用onMarkerClick 它允许用户在单击标记时查看新的活动 窗口 如果想要更改行为以便打开新活动 但仅当我双击标记时 我该怎么做 这是我的代码 public class MapsActivity extends Fragm
  • WebDriverWait 中的逻辑运算符预期条件

    我正在使用 Python Selenium 提交表单 然后让 Web 驱动程序通过使用类 id 的预期条件等待下一页加载 我的问题是 有两个页面可以显示 但它们不共享原始页面中不存在的唯一元素 我可以找到 一页有一个独特的类别是mobile
  • 查找字符出现 N 次的行

    我有一个 txt 文件 我试图将其作为平面文件导入 SQL2008 如下所示 123456 some text 543210 some more text 111223 other text etc 该文件有超过 300 000 行 文本很
  • GAE Python 开发服务器升级到 2.7 后间歇性崩溃

    我最近将我的 GAE Python 应用程序升级到了 Python 2 7 从那时起 我定期在开发服务器上收到以下错误 并且开发服务器提供空白页面 Traceback most recent call last File Applicati
  • 用模式替换 R 中的字符串并替换两个向量

    假设我有两个向量 如下所示 a lt c this is test b lt c that was boy 我还有一个字符串变量 如下所示 string lt this is a story about a test 我想替换字符串中的值
  • 字形和文本之间的间距?

    我正在尝试添加字形图标作为电子邮件地址链接的一部分 图标显示 但图标和电子邮件地址文本之间没有间距 我希望超链接包含图标和文本 包括空格 实现这一目标的最佳方法是什么 a href title Some Email span class g
  • terraform 和 aurora postgresql 的存储类型错误

    我目前正在借助 Terraform 在 AWS 中部署 Aurora postgres 实例 这里是我的报关表 resource aws db instance postgreDatabase name validName storage
  • 以编程方式将类序列化为 xsd

    有没有办法以编程方式从 C NET 类创建 XSD 我想将对象序列化为带有类型信息的 xsd 或 xml 是的 看着XsdDataContractExporter MSDN 有一个完整的例子在这里 http msdn microsoft c
  • SocketOutputStream的线程安全

    我知道 java 套接字的线程安全性已经在 stackoverflow 上的几个线程中进行了讨论 但我一直无法找到这个问题的明确答案 实际上 让多个线程同时写入同一个线程是否安全SocketOutputStream 或者是否存在从一个线程发
  • NavigationLink 内的 SwiftUI 按钮

    我有一个列表项的视图 它显示有关嵌入到 navigationLink 中的任务的一些基本信息 我想使用 navigationLink 中的按钮进行切换task isComplete没有进行任何导航 到目前为止 这是我的代码 var body
  • django-admin.py:找不到命令

    我在 usr local bin 中有 django admin py 并且我已经尝试了网络上提供的所有帮助来创建符号链接 但它仍然显示 django admin py command not find 我正在尝试在 django 中启动我
  • 如何获取从Powershell启动的Explorer的进程ID

    我从Powershell启动 Explorer exe 想要获取资源管理器窗口的进程ID 这样我就不会在其他资源管理器窗口上误操作 代码 启动进程 Explorer exe PassThru 结果 我可以看到进程ID 但它与UISpy或任务
  • 在 .NET 4.5.2 控制台应用程序中使用 .NET Core 库

    我有两个项目 一个项目基于 NET Core 构建 另一个项目基于普通 NET Framework 4 5 2 构建 我想知道如何在 NET 控制台应用程序中使用 NET Core cass 库 这是我的project json versi
  • 在 Chrome 上使用 Jquery 检测 Shift + 单击

    我正在尝试使用 javascript 检测 Shift 点击 但由于某种原因它只适用于 IE click function e if e shiftKey Rain 这是在 IE 中适用的代码 我如何在 Chrome 上检测到它 我不认为有
  • 如何在初始化后设置jqueryui datepicker minDate?

    我有两个日期选择器 jquery ui 我想将第二个输入 minDate 属性 限制为第一个输入中选择的值 我该怎么做 我写了下面的代码 没有成功 picker1 button click function var minDate pick
  • Spark Apache 中的 Worker 无法连接到 master

    我正在使用独立集群管理器部署 Spark Apache 应用程序 我的架构使用 2 台 Windows 机器 一组作为主机 另一组作为从机 工作程序 Master on which I run bin gt spark class org
  • Java 中 DirectX 程序的全屏捕获(Javacv?)

    对于Windows 我知道可以捕获在 C 语言下运行的 DirectX 程序的屏幕 但是您知道 Java 的一些示例代码吗 我实际上面临着同样的问题使用java在全屏应用程序中截取屏幕截图 https stackoverflow com q