tags:

views:

132

answers:

2

Hello,
I've written a program in C# to take screenshots of rectangular areas on my screen. however i don't seem to be able to capture the information from Adobe AIR applications. Instead, the applications beneath are what i end up with.

the meat of the action revolves around System.Drawing.Graphics.CopyFromScreen - passing in what amounts to an upper left point and a size and grabbing that area. I've had no problems so far with anything else, including flash movies in web pages.

I really have no idea where to look, and my google searches lead me to believe i'm the only person who has ever encountered this. :O

Any ideas?

+1  A: 

This doesn't help you but I just threw together a quick WinForms app to try it and I was able to take a screenshot of TweetDeck using the CopyFromScreen function.

Brian Ensink
i've only tried the apps our company has built internally. i'll investigate external ones. thanks.
yep, i can screenshot tweetdeck. we use chromeless AIR windows. i will see if this has anything to do with it
+1  A: 

Use the print screen key to take a screenshot of an Adobe AIR application on the Windows clipboard. Paste the screenshot into MS Paint. If you don't see Adobe AIR in your screenshot, then it's an acceleration issue - Adobe AIR is using a hardware accelerated surface (i.e. DirectX or OpenGL) for all its rendering, which means it just doesn't exist in the software screen buffer (there are ways to take screenshots of accelerated surfaces in other applications, but that gets very specialized).

David
very good point. we're using certain settings on our AIR apps (these are all internally produced). i will investigate if those options push it out to an accelerated surface.
my findings are consistent so far - any AIR apps with custom chrome cannot be screened normally, but anything using the standard windows chrome can be captured in the usual fashion. thanks again! - this gives me a place to start looking