Heim > Backend-Entwicklung > C++ > Wie kann ich einen Screenshot einer bestimmten Anwendung in C# erfassen?

Wie kann ich einen Screenshot einer bestimmten Anwendung in C# erfassen?

Patricia Arquette
Freigeben: 2025-01-17 12:11:10
Original
515 Leute haben es durchsucht

How Can I Capture a Screenshot of a Specific Application in C#?

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:

  1. Identifizieren Sie das Zielfenster: Verwenden Sie GetWindowRect, um das Handle (HWND) des Anwendungsfensters zu erhalten, das Sie erfassen möchten.
  2. Verwenden Sie 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.
  3. Bitmap abrufen: Erstellen Sie ein 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.
  4. Aufräumen: Geben Sie den HDC frei und entsorgen Sie das 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!

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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage