PDA

View Full Version : Screenshots not working



Yarin
01-14-2008, 06:51 PM
When I try to take a screenshot of DOS programs or videos that WMP is playing, I get nothing. With DOS, it's just a black screen. And with videos begin played by WMP, it's dark purple where the video frames should be drawn.

Is there some way for me to get exactely what I see, including the cursor? I tried GetPixel(), but it comes up with the same result PrtSc does. I don't mind coding it, and I don't mind not.

CornedBee
01-15-2008, 01:26 AM
WMP is using video overlays. It draws its playback area in a key colour, and the graphics card replaces the key with the video content.

DOS ... are you talking about a fullscreen console?

matsp
01-15-2008, 03:34 AM
The only way you could access the WMP data is if you can get to the overlay layer in the graphics card. I know there are DirectX (not sure if it's part of Direct3D or some other part tho') that can write to overlay, but I'm not sure if they can also read back from the overlay. Note also that the overlay may not be in RGB, but in YUV format or some such.

If the DOS screen is in full-screen mode, then Windows has no knowledge of it's content, it's been set up by the VGA BIOS, and Windows itself has no direct control over the graphical content. The content is also not in pixels in this mode, but stored as two bytes of attribute byte 1 and characater byte 0.

--
Mats

dwks
01-15-2008, 04:47 PM
I don't mind coding it, and I don't mind not.
Do you mean, "It doesn't matter if I have to code it myself, or if I can use an existing library or function", or "It doesn't matter if I code it myself, or if I do it manually without writing any code"?

If the latter, consider pressing ALT-ENTER to toggle a fullscreen DOS console into windowed mode. (Assuming it's a "DOS" application running in a command prompt, and not a real DOS program.) You should be able to printscreen it then.


including the cursor?
Press printscreen when the cursor is on the screen. You should be able to get it after a few tries.

CornedBee
01-15-2008, 08:19 PM
As for the video, look for a hardware acceleration disable option.

PING
01-15-2008, 10:17 PM
You can use something like fraps

oogabooga
01-16-2008, 10:38 AM
WMP is using video overlays. It draws its playback area in a key colour, and the graphics card replaces the key with the video content.

Something you can to do with the key color is to change your dos window (or whatever
window) background to that color (16, 0, 16 on my computer) and you can see the video
"through" the window.


As for the video, look for a hardware acceleration disable option.
Thanks for that tip. It works on my WinXP and (old!) graphics card.
Here's a pic of the setting I changed and the resulting pic of WMP:

indigo0086
01-16-2008, 10:43 AM
If you have the gimp, it has a screenshot filter that works with overlay video. you just click and drag the cursor from the "File | Aquire | Screenshot" onto the video and you will have a nice image that you can crop out.

Yarin
01-19-2008, 10:24 AM
Thanks for the responces. The hardware acceleration thing sounds good.
I think I'm out of luck with the fullscreen consol programs. Alt-Enter (and others) all just minimize it, and winspy++ says that the window is a couple pixels wide/high, and sitting at somthing like -2000 x -2000.

Elysia
01-19-2008, 02:07 PM
Disabling hardware acceleration is typically a very bad thing since that means graphics won't be done in hardware.

CornedBee
01-19-2008, 02:37 PM
If you do it temporarily just to get a still from a movie, I think the problems are manageable.

Elysia
01-19-2008, 02:39 PM
I agree, but then you have to remember setting it back, so other methods might be preferable before restoring to it.