Ambil tangkapan skrin aplikasi tertentu menggunakan C#
Kadangkala, anda mungkin hanya perlu mengambil tangkapan skrin tetingkap aplikasi tertentu, bukannya keseluruhan skrin. Dalam kes ini, prosesnya sedikit lebih rumit.
API PrintWindow: Penyelesaian untuk pemintasan aplikasi
API PrintWindow dalam Windows membolehkan anda menangkap peta bit tetingkap tertentu, walaupun ia dikaburkan oleh elemen lain atau terletak di luar skrin.
Pelaksanaan kod
Untuk memanfaatkan PrintWindow, ikuti langkah berikut:
Berikut ialah contoh kod:
<code class="language-csharp">using System.Drawing; using System.Runtime.InteropServices; public static class ScreenshotHelper { [DllImport("user32.dll")] private static extern bool PrintWindow(IntPtr hWnd, IntPtr hdcBlt, int nFlags); [DllImport("user32.dll")] private static extern bool GetWindowRect(IntPtr hWnd, out RECT lpRect); public static Bitmap CaptureWindow(IntPtr hwnd) { RECT rc; GetWindowRect(hwnd, out rc); Bitmap bmp = new Bitmap(rc.Width, rc.Height, PixelFormat.Format32bppArgb); Graphics gfxBmp = Graphics.FromImage(bmp); IntPtr hdcBitmap = gfxBmp.GetHdc(); PrintWindow(hwnd, hdcBitmap, 0); gfxBmp.ReleaseHdc(hdcBitmap); gfxBmp.Dispose(); return bmp; } } [StructLayout(LayoutKind.Sequential)] public struct RECT { public int Left; public int Top; public int Right; public int Bottom; }</code>
Ringkasan
Menggunakan API PrintWindow, anda boleh mengambil tangkapan skrin aplikasi tertentu dengan mudah, walaupun aplikasi tersebut mungkin diminimumkan atau dikaburkan oleh tetingkap atas. Teknologi ini menawarkan banyak kemungkinan untuk manipulasi tetingkap dan pemerolehan imej.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menangkap Tangkapan Skrin Tetingkap Aplikasi Tertentu Menggunakan C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!