2010-08-13 13 views
5

Quiero tomar una captura de pantalla del escritorio mientras Windows está bloqueado (con Win + L). Los métodos estándar hacen una pantalla en negro, con código de píxel:Tomar captura de pantalla del escritorio cuando Windows está bloqueado (Win + L)

COLORREF color = GetPixel(hdc, x, y); 

igual -1. Ni un programa en modo usuario ni un servicio podrían capturar una imagen útil. ¿Algunas ideas?

+0

¿Estás tratando de obtener una imagen del escritorio que se mostraría si estuviera desbloqueada, o una captura de la pantalla bloqueada? – RBerteig

+0

Estoy tratando de tomar una captura de pantalla si se desbloqueó, la captura de pantalla de Winlogon no me interesa) –

Respuesta

2

GetPixel y BitBlt no funcionarán cuando el escritorio no se muestre físicamente en el monitor.

Puede tener un poco de suerte capturando ventanas individuales con PrintWindow. Sin embargo, no todas las aplicaciones responden a las llamadas PrintWindow de la misma manera, por lo que puede ver problemas técnicos y/o negrura. También necesitarás capturar cada ventana individualmente.

+0

Lo entiendo correctamente: ¿sugiere organizar un ciclo y hacer una captura de pantalla de la ventana de todos? Si voy a usar el parámetro HWND igual a 0, ¿se copiará a DC todo el escritorio? A pesar de todo, gracias. –

+0

Le pedirá al escritorio que se dibuje en el 'HDC' de su elección, lo que creo que le proporciona una copia del fondo de pantalla del usuario, y posiblemente de sus íconos. –

+0

Anticreativshik, ¿obtuviste algún resultado? –

Cuestiones relacionadas