¿Cuál es la mejor (más fácil) forma de tomar una captura de pantalla de una aplicación en ejecución con C++ en Windows?¿Cuál es la mejor manera de tomar capturas de pantalla de una ventana con C++ en Windows?
Respuesta
Tienes que obtener el contexto del dispositivo de la ventana (GetWindowDC()
) y copiar la imagen (BitBlt()
) desde ella. Dependiendo de qué más sepa acerca de la aplicación, utilizará diferentes métodos para encontrar el identificador de esa ventana que pasará al GetWindowDC()
.
En la documentación de la función keybd_event indica que puede usarlo para tomar una captura de pantalla y guardarla en el portapapeles. Por ejemplo:
keybd_event(VK_SNAPSHOT, 0, KEYEVENTF_SILENT, 0);
En mi versión (Visual Studio 2005 ayuda instalado en mi ordenador) que indica que se puede tomar una captura de pantalla de todo el escritorio estableciendo el segundo parámetro a 0, o una captura de pantalla de sólo el la aplicación actual configurándola en 1.
Sacarla del búfer del portapapeles se deja como ejercicio para el lector.
Sin embargo, lo pensaría cuidadosamente antes de hacer esto, ya que dejará los datos de imagen ya presentes en el portapapeles.
ese es el evento para la tecla PrintScr en el teclado. El 'keybd_event' que indicó no se puede usar para tomar una captura de pantalla. ¡Qué concepto está malinterpretando! – jondinham
@Paul Siga el enlace que he incluido y revise la sección de Comentarios. Indica: "Una aplicación puede simular una pulsación de la tecla PRINTSCRN para obtener una captura de pantalla y guardarla en el portapapeles. Para hacerlo, llame a keybd_event con el parámetro bVk establecido en VK_SNAPSHOT. " – Daemin
bueno, ya veo, no sabía que podíamos simular la presión de la tecla de impresión :) – jondinham
Aquí hay un ejemplo code
Puede hacer CaptureAnImage(GetDesktopWindow());
para hacer una captura de pantalla.
- 1. ¿La mejor manera de tomar capturas de pantalla de pruebas en Selenium 2?
- 2. C# biblioteca para tomar capturas de pantalla?
- 3. La forma más rápida de tomar una captura de pantalla con Python en Windows
- 4. C# ¿Cuál es la manera más rápida de tomar una captura de pantalla?
- 5. Cómo tomar capturas de pantalla rápidamente en Java?
- 6. ¿Cuál es la mejor manera de comparar programas en Windows?
- 7. Selenium se ejecuta como un servicio de Windows para tomar capturas de pantalla en los errores
- 8. Cómo tomar capturas de pantalla en Android 2.3.3 sin raíz?
- 9. DrawToBitmap no tomar capturas de pantalla de todos los elementos
- 10. Tomar la ventana de OpenCV y hacer pantalla completa
- 11. ¿Cómo tomar capturas de pantalla del emulador usando Eclipse?
- 12. ¿Cómo tomar una captura de pantalla de la ventana activa en Delphi?
- 13. Cuál es la mejor manera de determinar si una ventana es realmente visible en WPF
- 14. ¿Hay alguna manera de tomar una captura de pantalla del escritorio de Windows del usuario?
- 15. ¿Cuál es la mejor manera de escribir comentarios en C?
- 16. ¿Cuál es la mejor manera de configurar una descripción del servicio de Windows en .net
- 17. ¿Cuál es la mejor manera de verificar si la vista es visible en la ventana?
- 18. Cuál es la mejor manera de cambiar las credenciales de un servicio de Windows usando C#
- 19. ¿Cuál es la mejor manera de rellenar una plantilla de Word 2007 en C#?
- 20. ¿Cuál es la mejor manera de hacer una tabla de búsqueda en C?
- 21. capturas de pantalla de watir-webdriver black
- 22. ¿Cómo puedo tomar capturas de pantalla de páginas web con Perl?
- 23. ¿Cuál es la mejor manera de dibujar en la consola?
- 24. ¿Cuál es la mejor manera de hacer la validación de entrada en C++ con cin?
- 25. Colocación de una ventana en la pantalla
- 26. ¿Cuál es la mejor manera de declarar una variable global?
- 27. ¿Cuál es la mejor manera de hacer una simple GUI multiplataforma en C++?
- 28. ¿Cuál es la mejor manera de escribir aplicaciones JavaScript/Ruby en dispositivos con Windows Mobile?
- 29. ¿Cuál es la mejor manera de transferir datos de python a otra aplicación en Windows?
- 30. ¿Cuál es la mejor manera de utilizar CoffeeScript con Django si está desarrollando en Windows?
Presione el botón 'Imprimir pantalla' en el teclado. –
¿Cómo fue esta pregunta fuera del tema? Me pregunta cómo hacerlo programáticamente, lo cual me parece bastante relevante (y no es demasiado raro). – jamesdlin
¿Offtopic? De Verdad? – Nakilon