Missing elements in screenshot

Description

I'm using Greenshot version 1.1.5 Build 2643 (32 bit), which is the latest version for now.

Issue: some elements are missing in a screenshot. The strange thing is the screenshot of the same window I took a minute later was totally fine, even though both were captured the same way. I've used a key combination to capture the active window (I've changed it to Alt + Ctrl + Shift + Prnt scrn). Both screenshots are attached to the ticket. The issue occurs once for every ~10 window captures I perform. I've experienced the issue on several different servers capturing windows of several different applications. Taking a second screenshot usually produces a perfect result.

Setup: the Greenshot was running on Windows 2008r2 64bit. I was connected to the server from Windows 7 32bit using RDP.

Environment

None

Activity

Show:
staskorz
June 6, 2013, 10:01 AM

Attachment missing_elements_bug.zip has been added with description: imported from: http://sourceforge.net/p/greenshot/bugs/1518/attachment/missing_elements_bug.zip

staskorz
June 9, 2013, 3:53 AM

One more thing I've noticed: the frequency of an issue increases over time - if at the beginning it occurs once for every ~10 window captures, after a few hours of usage it occurs once for every ~5 window captures. Also, after a few hours of usage, retrying doesn't always help - sometimes the only way to get a perfect window capture is by clicking the system trey icon, choosing the "Capture window" option and then selecting with mouse the window to capture.

Robin Krom
June 10, 2013, 12:57 PM

Hi, had a look at this issue and must say I have not much experience with Windows Server 2008 but I noticed that DWM (Desktop Window Manager) is not enabled by default which might explain the issue. Does the problem also occur on your Windows 7?

To what is the "Window capture mode" in your settings set? And what options are available to you? Can you please change it to "As displayed" and see how this works for you? (This should solve the issue, but is not really the best way..)

Best wishes,
Robin

Robin Krom
June 10, 2013, 1:11 PM

Just some additional background information, when capturing a window Greenshot tries to get the window without taking it from the screen by using alternative capture methods. This has the advantage that we can capture them even if a part is overlapped or outside the visible screen and (for DWM) make sure the transparent parts don't have anthing behind them.

If DWM, something which is available since Windows Vista and for Server 2008 only when "Desktop Experience" and the correct drivers are installed, is active we can use this and this works without many issues.

If no DWM we use "PrintWindow" which is an API where we ask the application to draw the window content to memory we control. The disadvantage is that if the application doesn't draw the requested window content quickly enough or somehow forgets something, parts might be missing. This seems to happen on your Windows server 2008... maybe a bug, maybe the system load is quite high?

Anyway, as we don't have the resources to test with Windows Server 2008 I would set the windows capture mode to "As displayed" which skips the alternative methods and just grabs the content from the screen. This should always work, but ofcourse you won't have the advantages of the other methods.

staskorz
June 13, 2013, 3:53 AM

Hi Robin,

Thanks for your reply. Yesterday I've tried the workaround you've proposed (changing the window capture mode to "As displayed" - it was set to "Automatically" before). It works perfect now - I took tens of screenshots and all of them were fine. You were right about the "Desktop Experience" - it's indeed not installed on our servers. I didn't take too many screenshots on my Windows 7 machine, but I don't remember having issues with the few I did. Many thanks for the awesome application! ...and the quick workaround, of course.

Best Regards,

Stas.

Assignee

Unassigned

Reporter

staskorz

Affects versions

None

Components

None

Priority

Labels

None
Configure