I need to capture screenshots of DirectX and OpenGL games and desktop. This method should work on Windows XP, Windows Vista and Windows 7. I've searched all over the internet but the method's I find, take black screenshots when the user is on Win7. Disabling Aero is a solution but I need a more professional solution. When Antialiasing is enabled in-game black screenshots are taken too.
I don't want external libraries like SlimDX used and the project has to be done on C#.