2010-06-11 10 views
6

Ho notato alcune volte rispetto a quando stampo sullo schermo mentre Media Player è in esecuzione, il contenuto è sostituito da un rettangolo grigio. Non ho idea se sia intenzionale a causa del DRM o di qualche problema tecnico, ma mi ha colpito il fatto che essere in grado di bloccare deliberatamente l'acquisizione dello schermo potrebbe essere una caratteristica utile in alcuni scenari. Non sto cercando di risolvere il problema, ma di replicarlo!Come si può evitare che una singola finestra venga catturata da Print-Screen?

C'è qualche messaggio specifico ricevuto da ogni HWND per lo schermo di stampa? Windows esegue un repaint speciale o semplicemente scarica i buffer negli Appunti?

Credo che preferirei focalizzarlo su Win32 in modo specifico, ma finché è collegato a Windows, allora va bene.

+3

Potrei sbagliarmi ma direi che lo schermo di stampa cattura uno scatto istantaneo di qualsiasi finestra buffer utilizza per comporre le finestre, mentre il video viene sovrapposto in una fase successiva, forse su la scheda video. http://en.wikipedia.org/wiki/Hardware_overlay – gingerbreadboy

+0

Alcuni videogiochi e lettori multimediali hanno una capacità di "screen shot" incorporata, ma la maggior parte no. Il fatto è che i lettori multimediali e i giochi tendono a utilizzare DirectX che alloca un buffer video da utilizzare. È possibile utilizzare Fraps o qualche altra utilità di cattura schermo per acquisire questo tipo di immagini. – Daniel

risposta

3

È possibile registrare un tasto di scelta rapida, utilizzando this method. Registrare la chiave PrtScr e l'applicazione riceverà un messaggio nel WndProc, WM_HOTKEY. Una volta ricevuto questo, puoi fare qualcosa nel modulo per svuotare il display o qualcos'altro.

Questo metodo di tasti di scelta rapida dovrebbe funzionare anche se il modulo è ridotto a icona.

+0

Fondamentalmente per un breve intervallo faccio qualcosa come disegnare una grande scatola in cima alla mia finestra di dialogo, e quindi rimuoverla. Interessante. È provato o un'idea che dovrebbe funzionare? –

+0

Bene, buon punto :) La roba Hotkey è provata, ma bloccando il dialogo, è compito della sperimentazione. –

+3

@John, la registrazione di un tasto di scelta rapida per VK_SNAPSHOT disabiliterà completamente la stampa. Vi ringrazio anticipatamente per non disturbare la funzionalità del mio sistema operativo. – avakar

2

È necessario disattivare "Usa sovrapposizioni" per poter effettuare uno screenshot.

Aprire il lettore Windows Media. Seleziona "Strumenti" -> "Opzioni ..." dal menu. Fare clic sulla scheda "Prestazioni". Fare clic sul pulsante "Avanzate ...". Deseleziona la casella di controllo "Usa overlay" nel gruppo "Video Acceleration". Fare clic sul pulsante "OK". Fare clic sul pulsante "OK"

+0

Totalmente off-topic ma grazie comunque! Quindi non è una caratteristica del design allora? –

+1

L'overlay non viene catturato nello screenshot perché se si preme la stampa, viene catturato solo il desktop. L'overlay video è una funzionalità hardware della tua scheda video. Immagino che sia reso direttamente nel buffer video, quindi Windows non sa cosa sta succedendo lì. Ma in Win7, ad esempio, vedrai il contenuto del tuo lettore multimediale anche con overlay abilitato, perché tutto è accelerato via hardware con Aero abilitato e la funzione di stampa mostrerà il contenuto del buffer video. – humbagumba

Problemi correlati