Heim > Backend-Entwicklung > C++ > Wie kann ich mit der Win32-API einen Screenshot einer Windows-Anwendung erfassen?

Wie kann ich mit der Win32-API einen Screenshot einer Windows-Anwendung erfassen?

DDD
Freigeben: 2024-12-05 22:12:17
Original
1011 Leute haben es durchsucht

How Can I Capture a Windows Application Screenshot Using the Win32 API?

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);
Nach dem Login kopieren

Rufen Sie den Gerätekontext des gesamten ab Bildschirm.

HDC hMemoryDC = CreateCompatibleDC(hScreenDC);
Nach dem Login kopieren

Erstellen Sie einen kompatiblen Gerätekontext zum Kopieren der Bildschirm-Bitmap.

int width = GetDeviceCaps(hScreenDC,HORZRES);
int height = GetDeviceCaps(hScreenDC,VERTRES);
Nach dem Login kopieren

Ermitteln Sie die Breite und Höhe des Bildschirms in Pixel.

HBITMAP hBitmap = CreateCompatibleBitmap(hScreenDC,width,height);
Nach dem Login kopieren

Erstellen Sie eine kompatible Bitmap, um das Bildschirmbild zu speichern.

HBITMAP hOldBitmap = static_cast<HBITMAP>(SelectObject(hMemoryDC,hBitmap));
Nach dem Login kopieren

Wählen Sie die kompatible Bitmap im kompatiblen Gerät aus Kontext.

BitBlt(hMemoryDC,0,0,width,height,hScreenDC,0,0,SRCCOPY);
Nach dem Login kopieren

Kopieren Sie das Bildschirmbild mithilfe der Bitblockübertragung (BitBlt) in die kompatible Bitmap.

hBitmap = static_cast<HBITMAP>(SelectObject(hMemoryDC,hOldBitmap));
Nach dem Login kopieren

Stellen Sie die vorherige Bitmap-Auswahl im Kontext des Speichergeräts wieder her.

DeleteDC(hMemoryDC);
DeleteDC(hScreenDC);
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage