C#은 지정된 애플리케이션 창의 스크린샷을 찍습니다
전체 화면이 아닌 특정 애플리케이션이나 창의 스크린샷을 찍어야 하는 경우도 있습니다. 이는 창을 장치 컨텍스트에 인쇄할 수 있는 PrintWindow Win32 API를 통해 달성됩니다.
코드 구현
다음 C# 코드는 지정된 창의 스크린샷을 찍는 방법을 보여줍니다.
<code class="language-csharp">// 导入所需的Win32 API [DllImport("user32.dll")] public static extern bool GetWindowRect(IntPtr hWnd, out RECT lpRect); [DllImport("user32.dll")] public static extern bool PrintWindow(IntPtr hWnd, IntPtr hdcBlt, int nFlags); // 定义表示RECT结构的类 [StructLayout(LayoutKind.Sequential)] public struct RECT { public int Left; public int Top; public int Right; public int Bottom; } // 获取窗口句柄和尺寸 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(); // 现在您拥有了表示指定窗口截图的位图</code>
기타 안내
위 내용은 C#을 사용하여 특정 애플리케이션 창의 스크린샷을 찍으려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!