2009-10-04 11 views
6

¿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?

+0

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

Respuesta

3

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).

+1

Vea http://msdn.microsoft.com/en-us/library/aa969541%28VS.85%29.aspx para usar las funciones DWM que utiliza la barra de tareas . –

+1

Buen hallazgo, no tenía idea de que API existía (aunque solo sería útil en Vista o más reciente) – GRB

+0

¿Qué ocurre si Windows Aero está deshabilitado? –

Cuestiones relacionadas