I'm the owner of antycheat, which is used to fight with cheaters in multiplayer computer games. My program, written in Delphi, makes screenshots of what a Windows user sees on the screen. Making such discharge is to create a TCanvas class, set the handle to the active window by GetDesktopWindow function and then calling the method TCanvas.Canvas.CopyRect. The process is working properly, both the XP and Vista/7. Also works on XP when it is running the game (the program makes the screenshots of the game), but unfortunately in the case of Vista/7, it doesn't work properly. When the operating system is running a game, my program makes black screenshots. I do not know what is the cause, whether it is a problem with support for OpenGL, if the program uses the wrong window handle, or something else. In addition, the program described in the above situation takes normal screenshots when the game is in window mode (not fullscreen) or using d3d mode.
I need a program (written in C++ or Delphi) which creates screenshots in Windows Vista and Seven from applications running in full screen mode. The application can be run with administrator rights system, with any (indicated by the contractor) operating system configuration. Print Screen does not come into play. The test will be realized on Windows Seven with game Counter-Strike v1.6.