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 중국어 웹사이트의 기타 관련 기사를 참조하세요!