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 中国語 Web サイトの他の関連記事を参照してください。