Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Menangkap Tangkapan Skrin Aplikasi Tertentu dalam C#?

Bagaimanakah Saya Boleh Menangkap Tangkapan Skrin Aplikasi Tertentu dalam C#?

Patricia Arquette
Patricia Arquetteasal
2025-01-17 12:11:10516semak imbas

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

Mengambil Tangkapan Skrin Aplikasi Individu dalam C#

Walaupun menangkap tangkapan skrin penuh dengan Graphics.CopyFromScreen() adalah mudah, menangkap aplikasi tertentu memerlukan teknik yang lebih canggih. Penyelesaian optimum memanfaatkan PrintWindow fungsi Win32 API. Fungsi ini membolehkan anda menangkap imej tetingkap, tanpa mengira keterlihatannya atau sama ada ia tersembunyi di sebalik tetingkap lain.

Berikut ialah pecahan proses:

  1. Kenal pasti Tetingkap Sasaran: Gunakan GetWindowRect untuk mendapatkan pemegang (HWND) tetingkap aplikasi yang anda ingin tangkap.
  2. Gunakan PrintWindow: Panggil fungsi PrintWindow, menyediakan pemegang tetingkap dan pemegang kepada konteks peranti Windows (HDC). Fungsi ini akan menangkap peta bit tetingkap.
  3. Dapatkan Peta Bit: Cipta objek Bitmap dan dapatkan konteks Graphicsnya menggunakan Graphics.FromImage(). Gunakan GetHdc() untuk mendapatkan semula HDC bitmap dan hantar ke PrintWindow.
  4. Bersihkan: Lepaskan HDC dan buang objek Graphics untuk mengelakkan kebocoran sumber.

Kaedah ini memastikan anda boleh menangkap tangkapan skrin tepat bagi aplikasi sasaran, walaupun ia dikaburkan sebahagian atau sepenuhnya.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menangkap Tangkapan Skrin Aplikasi Tertentu dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn