Heim >Backend-Entwicklung >C++ >Wie kann ich einen Screenshot einer bestimmten Anwendung in C# erfassen?
Screenshots einzelner Anwendungen in C# erstellen
Während die Aufnahme eines Vollbild-Screenshots mit Graphics.CopyFromScreen()
einfach ist, erfordert die Aufnahme einer bestimmten Anwendung eine ausgefeiltere Technik. Die optimale Lösung nutzt die PrintWindow
Win32-API-Funktion. Mit dieser Funktion können Sie das Bild eines Fensters erfassen, unabhängig von seiner Sichtbarkeit oder davon, ob es hinter anderen Fenstern verborgen ist.
Hier ist eine Aufschlüsselung des Prozesses:
GetWindowRect
, um das Handle (HWND) des Anwendungsfensters zu erhalten, das Sie erfassen möchten.PrintWindow
: Rufen Sie die Funktion PrintWindow
auf und stellen Sie das Fensterhandle und ein Handle für einen Windows-Gerätekontext (HDC) bereit. Diese Funktion erfasst die Bitmap des Fensters.Bitmap
-Objekt und rufen Sie seinen Graphics
-Kontext mit Graphics.FromImage()
ab. Verwenden Sie GetHdc()
, um den HDC der Bitmap abzurufen und an PrintWindow
zu übergeben.Graphics
Objekt, um Ressourcenlecks zu vermeiden.Diese Methode stellt sicher, dass Sie einen präzisen Screenshot einer Zielanwendung erfassen können, auch wenn diese teilweise oder vollständig verdeckt ist.
Das obige ist der detaillierte Inhalt vonWie kann ich einen Screenshot einer bestimmten Anwendung in C# erfassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!