¿Cómo puedo imprimir ventanas minimizadas? Creo que es posible, ya que la barra de tareas de Windows puede crear una vista previa de una ventana, incluso si está minimizada.¿Cómo puedo imprimir ventanas minimizadas?
Respuesta
Estoy bastante seguro de que esto no es posible, al menos por una aplicación externa como la suya. Cuando se minimiza una ventana de la aplicación, la ventana no puede recibir (y no recibe) mensajes WM_PAINT, lo que significa que es imposible pedirle a la ventana que se rediseñe mientras está minimizada (o, "tomar una foto de ella"). Esta es una limitación (o una regla) de la API de Windows.
La barra de tareas "evita este" mediante la visualización de una imagen almacenada en caché (que es la última instantánea del DWM tomó de la ventana antes de que se redujo al mínimo) y por lo que es no, de hecho, tomar una foto actual de la ventana. Puede probar esto ejecutando una aplicación que periódicamente se actualiza y luego la minimiza: verá que la imagen de vista previa no se actualizará hasta que se restaure.
La única forma de evitar esto es hacer lo que hace la barra de tareas: tomar periódicamente una foto de la ventana que desea y, cuando se minimice, usar la imagen almacenada en caché. Por supuesto, esto significa que su aplicación deberá haber seguido la ventana de destino con cierta antelación (esto obviamente no funcionará si la primera vez que desea tomar una instantánea de la ventana es mientras está minimizada).
Vea http://msdn.microsoft.com/en-us/library/aa969541%28VS.85%29.aspx para usar las funciones DWM que utiliza la barra de tareas . –
Buen hallazgo, no tenía idea de que API existía (aunque solo sería útil en Vista o más reciente) – GRB
¿Qué ocurre si Windows Aero está deshabilitado? –
Este tipo logró hacer exactamente lo que está buscando: http://www.codeproject.com/Articles/20651/Capturing-Minimized-Window-A-Kid-s-Trick Sé que esta pregunta es muy antigua, pero aún puede ser válida para alguien.
- 1. cómo notificar a mi aplicación cuando se muestra el escritorio/minimizar todas/todas las ventanas minimizadas?
- 2. ¿Cómo puedo imprimir un mensaje en Makefile?
- 3. ¿Cómo puedo imprimir una comilla en C?
- 4. ¿Cómo puedo imprimir en la misma línea?
- 5. No puedo adjuntar ventanas Proceso de servicio
- 6. ¿Cómo puedo detectar cuándo se abren nuevas ventanas y/u obtener una lista de ventanas abiertas?
- 7. No puedo dejar de imprimir
- 8. ¿Cómo puedo dividir horizontalmente varias ventanas divididas verticalmente en Vim?
- 9. ¿Cómo puedo evitar que Emacs redimensione mis ventanas?
- 10. Imprimir un retorno de carro en Java en las ventanas en la consola
- 11. ¿Cómo puedo personalizar la salida del navegador para imprimir/imprimir vista previa?
- 12. ¿Cómo puedo imprimir una cadena usando .formato(), e imprimir llaves literales alrededor de mi cadena reemplazado
- 13. Cómo imprimir la matriz?
- 14. Cómo imprimir datos json.
- 15. ¿Cómo puedo imprimir información sobre un NET: HTTPRequest para depuración?
- 16. ¿Cómo puedo imprimir bastante los resultados de DBIx :: Class?
- 17. ¿Cómo puedo imprimir los valores de wchar_t en la consola?
- 18. ¿Cómo puedo imprimir una nueva línea correctamente en Haskell?
- 19. ¿Cómo puedo imprimir bastante fuente XML utilizando VB6 y MSXML?
- 20. ¿Cómo puedo imprimir imágenes de fondo en FF o IE?
- 21. ¿Cómo puedo imprimir el contenido de un solo JPanel?
- 22. ¿Cómo puedo obtener awk para imprimir sin espacio en blanco?
- 23. ¿Cómo puedo imprimir el cuerpo enviado por Restkit (IOS)
- 24. ¿Cómo puedo imprimir muchas figuras significativas en Python?
- 25. ¿Cómo puedo imprimir el contenido de un hash en Perl?
- 26. ¿Cómo puedo imprimir la dirección de memoria de una variable?
- 27. ¿cómo puedo imprimir vista previa en win32 C++?
- 28. Cómo imprimir en C
- 29. qué puedo llamar 'imprimir' desde 'eval'
- 30. ¿Puedo usar imprimir en Raphael sin Cufon?
El administrador de Vista Desktop logra hacerlo, por lo que no veo por qué no. Qué tan bajo nivel necesita ir es otra pregunta ... – Noldorin