2010-08-13 9 views
5

Voglio prendere uno screenshot del desktop mentre Windows è bloccato (con Win + L). I metodi standard creano uno schermo nero, con codice del pixel:Acquisire schermate del desktop quando Windows è bloccato (Win + L)

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

uguale a -1. Né un programma in modalità utente né un servizio possono acquisire un'immagine utile. Qualche idea?

+0

Stai cercando di ottenere un'immagine del desktop che verrebbe visualizzata se fosse sbloccata o una ripresa dello stesso schermo bloccato? – RBerteig

+0

Sto provando a catturare screenshot del display se era sbloccato, lo screenshot di Winlogon non mi interessa) –

risposta

2

GetPixel e BitBlt non funzionano quando il desktop non è fisicamente visualizzato sul monitor.

Potrebbe essere un po 'di fortuna catturare singole finestre con PrintWindow. Tuttavia, non tutte le applicazioni rispondono alle chiamate PrintWindow allo stesso modo, pertanto è possibile che vengano visualizzate anomalie e/o oscurità. Dovrai anche catturare ciascuna finestra individualmente.

+0

Ho capito bene: suggerisci di organizzare un ciclo e fare uno screenshot di tutte le finestre? Se userò il parametro HWND uguale a 0, copierà su DC tutto il desktop? Nonostante tutto, grazie. –

+0

Chiederà al desktop di dipingersi in 'HDC' di tua scelta, il che credo ti porti una copia dello sfondo dell'utente e possibilmente delle loro icone. –

+0

Anticreativshik, hai avuto qualche risultato? –

Problemi correlati