使用C#截取特定應用程式螢幕截圖
有時,您可能只需要截取特定應用程式視窗的截圖,而不是整個螢幕。在這種情況下,過程會稍微複雜一些。
PrintWindow API:應用程式截取的解決方案
Windows中的PrintWindow API可讓您截取指定視窗的點陣圖,即使它被其他元素遮蔽或位於螢幕外。
程式碼實作
要利用PrintWindow,請依照下列步驟操作:
以下是一個程式碼範例:
<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>
總結
使用PrintWindow API,您可以輕鬆地截取特定應用程式的螢幕截圖,即使這些應用程式可能已最小化或被上層視窗遮擋。此技術為視窗操作和影像擷取提供了多種可能性。
以上是如何使用 C# 擷取特定應用程式視窗的螢幕截圖?的詳細內容。更多資訊請關注PHP中文網其他相關文章!