2010-04-09 18 views
6

Sto scrivendo un'app, che deve scattare automaticamente le schermate (proprio come premere il pulsante PrintScreen). Quindi, per favore suggeriscimi come farlo. Un'immagine BMP a 24 bit grezza sarebbe sufficiente.Qualsiasi API Win32 per ottenere gli screenshot?

NOTA BENE: La mia app è in C, quindi qualsiasi API win32 che può essere chiamata dal mio codice è ciò che sto cercando.

(A volte avevo un codice di esempio da codeproject che usava per ottenere le schermate ma l'utente del puntatore del mouse per lampeggiare quando viene scattata la schermata. Man mano che si effettuano più scatti questo sembra irritante per l'utente, quindi non voglio che il puntatore del mouse lampeggia)

+1

Che cosa hai trovato quando hai cercato su Google per WinAPI screenshot? http://www.google.com/search?q=winapi+screenshot –

+1

Grazie, Devo essere stato pazzo a non provarlo prima. Siamo spiacenti :) Questo in realtà aiutano ==> http://groups.google.com/group/win32-programming/browse_thread/thread/55c030edbaeaf026 – Microkernel

risposta

11

GetDC(NULL) + BitBlt()

per catturare traslucide/alpha/finestre sovrapposte, è necessario passare il flag CAPTUREBLT a BitBlt, se si fache, il cursore lampeggia, leggere this technet article per scoprire perché.

Con NT6 +, è possibile utilizzare lo Magnification API per fare ciò che si desidera.

+0

Ciao, Grazie per questo. Ora ricordo che l'unico tentativo che stavo facendo lampeggiare il puntatore del mouse era GetDC() + BitBlt(). Quello è il problema principale :(io non voglio il puntatore a lampeggiare ... Eventuali modi per ottenere le schermate ??? seemlessly – Microkernel

+0

Basta non passare il flag CAPTUREBLT – Anders

Problemi correlati