Hello,
I made a program for XP which takes screenshots of the screen.
Now to take the screenshot I used (in VB6):
GetDesktopWindow
GetWindowDC
CreateCompatibleDC
CreateCompatibleBitmap
Now under XP this works and gets the image on the screen every time, But now with vista it takes black screenshots when in a game running with openGL (DirectX is ok…).
Its like this on serval PC’s with updated video drivers, So do you have any suggestions? maybe another way to petch the on screen image?
Read this: http://www.opengl.org/pipeline/article/vol003_7/
and the links at the bottom.
GDI operations on OpenGL windows do not work under Vista. GDI is rendered to a separate surface and that’s probably what you captured.
It probably works with the so “Wow!” desktop compositor disabled (Aero scheme off).
I forgot to say:
In classic mode (scheme/theme), when Aero is off, the screenshots are all black (with aero I just get a cornor of the titlebar and everything else is black).
If you wanna see what I mean try capturing a OpenGL full screen game (I havent tried it with a application or a windowed game because it does’nt matter for me) with printscreen and pasting it to MSPaint or some other software.
I don’t own the source, and I already read that article.
But I wanna find another way instead of hooking to the OpenGL application and reading\saving the front buffer since its complicated for me now (need to know C++).
Can I get the image on the screen from the monitor driver or display driver - somthing?
Can I get the image on the screen from the monitor driver or display driver - somthing?
Use FRAPS, you may use if unregistered (with limitations).
If you wanna see what I mean try capturing a OpenGL full screen game with printscreen and pasting it to MSPaint or some other software.
Usually the printscreen key doesn’t work for fullscreen 3D applications (sometimes not even windowed) - this didn’t even work in XP for most apps.