如何在Windows中使用JNA截屏?

3

我找到了一些代码示例,但不知道哪个JNA版本可以使用哪些方法。我只能找到片段,其中缺少类,并且我无法导入它们。

我想知道应该使用哪个JNA版本以及如何将屏幕截图作为BufferedImage获取。

还需要提供所需的导入列表。


1
问题是如何在您的操作系统API中进行屏幕截图。 - Antoniossss
好的,谢谢提醒,我忘记加了。 - Venji
1
请在发布问题之前花更多时间梳理一下。重新阅读并检查拼写! - Maarten Bodewes
你想要 C 的答案还是 C++ 的答案? - ljrk
1
@larkey 因为问题指定了 JNA,所以一定是C。应该去掉 C++ 标签。 - Daniel Widdis
1个回答

1

看起来有这个链接中的几个例子。为了讨论目的,我将讨论下面的一个例子(#3),但您可能会发现其他示例更适用于您的情况,并希望这个答案能帮助您理解这个过程。

在示例之前,我将回答您的问题“应该使用哪个JNA版本”...在几乎所有情况下,您应该使用最新版本。 JNA是一个由用户支持的库,核心JNA代码变化不大,但每个新版本都会添加更多用户贡献的映射到本机函数。请注意他们的常见问题{{link2:“JNA在其平台库映射中缺少函数XXX”}}和答案,“不,它没有,它只是在等待您添加:)” 。如果您需要的映射不在JNA中,您可以使用提供的示例添加它,以满足您的即时需求。更好的是,将您的映射贡献给JNA项目,以便处于您情况的下一个人受益于您所做的工作!

现在,链接中的示例#3会截取整个屏幕并将其作为BufferedImage对象返回。 完整源代码显示了您需要的所有导入项,其中大部分来自JNA的WinGDI类
如果您滚动到类的底部,您还可以看到作者使用了两个JNA平台接口贡献的扩展映射,这些映射不在JNA中(或者在2010年编写该代码时不存在)。完成后,您将需要进行类似的映射(并可能将它们贡献给各自的JNA类)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接