Heim >Backend-Entwicklung >C++ >Wie kann ich mit der Win32-API einen Screenshot einer Windows-Anwendung erfassen?
Windows-Anwendungs-Screenshot-Erfassung
Bei der Windows-Programmierung ist das Erfassen eines Screenshots des aktuellen Bildschirms eine häufige Anforderung. Zu diesem Zweck stellt die Win32-API die notwendigen Funktionen bereit, um eine Bitmap-Darstellung des Bildschirms zu erhalten.
Win32-Screenshot-Code
Zum Erstellen eines Screenshots in einer Windows-Anwendung mit Win32, folgen Sie diesen Schritten:
HDC hScreenDC = GetDC(nullptr);
Rufen Sie den Gerätekontext des gesamten ab Bildschirm.
HDC hMemoryDC = CreateCompatibleDC(hScreenDC);
Erstellen Sie einen kompatiblen Gerätekontext zum Kopieren der Bildschirm-Bitmap.
int width = GetDeviceCaps(hScreenDC,HORZRES); int height = GetDeviceCaps(hScreenDC,VERTRES);
Ermitteln Sie die Breite und Höhe des Bildschirms in Pixel.
HBITMAP hBitmap = CreateCompatibleBitmap(hScreenDC,width,height);
Erstellen Sie eine kompatible Bitmap, um das Bildschirmbild zu speichern.
HBITMAP hOldBitmap = static_cast<HBITMAP>(SelectObject(hMemoryDC,hBitmap));
Wählen Sie die kompatible Bitmap im kompatiblen Gerät aus Kontext.
BitBlt(hMemoryDC,0,0,width,height,hScreenDC,0,0,SRCCOPY);
Kopieren Sie das Bildschirmbild mithilfe der Bitblockübertragung (BitBlt) in die kompatible Bitmap.
hBitmap = static_cast<HBITMAP>(SelectObject(hMemoryDC,hOldBitmap));
Stellen Sie die vorherige Bitmap-Auswahl im Kontext des Speichergeräts wieder her.
DeleteDC(hMemoryDC); DeleteDC(hScreenDC);
Löschen Sie beide Gerätekontexte, um Ressourcen freizugeben.
Das obige ist der detaillierte Inhalt vonWie kann ich mit der Win32-API einen Screenshot einer Windows-Anwendung erfassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!