[Delphi] Capturar pantalla en W7

Iniciado por omar73rnr, 14 Octubre 2011, 14:04 PM

0 Miembros y 1 Visitante están viendo este tema.

omar73rnr

Buenas soy nuevo en este foro.
Estoy haciendo un programa que saca capturas de pantalla de juegos que utilizan OpenGL, en Windows XP saca correctamente, pero en W7 las capturas salen en negro o del escritorio de Windows, ya pregunte en algunos foros especializados en Delphi y no supieron contestarme ya que se especializan en hacer programas de otros tipos (bases de datos para empresas y demas).
El programa lo que hace es sacar capturas de la pantalla cada cierto tiempo y despues convertirlas en video, el codigo que uso basicamente es este:
CitarVisible := False;
Application.ProcessMessages;
Bmp := TBitmap.Create;
try
Bmp.FreeImage;
Bmp.Width := GetSystemMetrics(SM_CXSCREEN);    //Screen.Width
Bmp.Height := GetSystemMetrics(SM_CYSCREEN);   //Screen.Height
BitBlt(Bmp.Canvas.Handle, 0, 0, Bmp.Width, Bmp.Height, GetDc(0), 0, 0, SRCCOPY);
Bmp.SaveToFile (ChangeFileExt(Application.ExeName,'.bmp'));
finally
  Bmp.Free;                           
end;
Visible := True ;
con algunas modificaciones para que vaya haciendo las capturas en distintos archivos, etc.
El problema como dije antes, es que en W7 las capturas salen del escritorio propio de windows o en negro. Solamente ocurre cuando el juego esta en OpenGL y en pantalla completa, en modo ventana o en otro modo de video captura correctamente.
Como puedo hacer que capture lo que se ve solo en el juego?
Espero que en este foro me puedan ayudar. Saludos.

omar73rnr

UP....
No se si me explique bien, mi programa funciona perfecto en XP, en W7 funciona bien pero solo con el juego en modo ventana (es para CS 1.6), pero en pantalla completa las capturas salen en negro. Lo que quiero hacer es que saque las capturas en pantalla completa pero no se como se puede hacer. Espero que alguien me pueda ayudar.