我使用this code在java中生成屏幕快照。我使用的方法大约是每秒5-10次,从屏幕截图中计算出一些值并将它们发送出去,所以我不存储截图。这在一段时间内工作正常(10-30分钟),但是方法返回null,因为bufferedImageFromBitmap-方法中的该行ok = GDI.GetDIBits(blitDC, outputBitmap, 0, raster.getHeight(), pixels, bi, 0);返回false。
如果再次调用该方法,它将再次返回null。
如果JNA失败,我尝试使用java.awt.Robot,但随后抛出一个OutOfMemoryException (我尝试了System.gc()并为程序提供了更多的内存,但异常仍然被抛出),但是在任务管理器中,我没有看到程序使用更多的内存。
你知道我能做什么吗(修复/变通/.)?
发布于 2014-04-27 17:08:11
多亏了technomage,这个问题才得以解决
如果我只调用windowDC = GDI.GetDC(USER.GetDesktopWindow());一次,然后重用windowDC,它就不会停止工作。
https://stackoverflow.com/questions/23280975
复制相似问题