如何在C#(滚动窗口)中拍摄全尺寸窗口的屏幕截图

时间:2019-02-19 10:17:25

标签: c# c#-4.0

嗨,我正在尝试在C#.net中创建一个应用程序,以捕获当前活动屏幕的屏幕截图,包括必须使用滚动条滚动的区域。我发现以下代码可以进行屏幕截图。非常清楚,我希望代码获取活动窗口的屏幕截图,包括未显示且仅通过使用滚动条才能显示的区域。非常感谢您的帮助。

example

        public static void PrintWindow(IntPtr hwnd)
    {
        try
        {

            RECT rc;
            GetWindowRect(hwnd, out rc);

            Bitmap bmp = new Bitmap(rc.Width, rc.Height, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
            Graphics gfxBmp = Graphics.FromImage(bmp);
            IntPtr hdcBitmap = gfxBmp.GetHdc();

            PrintWindow(hwnd, hdcBitmap, 0);

            gfxBmp.ReleaseHdc(hdcBitmap);
            gfxBmp.Dispose();



            string guid = Guid.NewGuid().ToString();

            if (!AllOneColor(bmp))
            {
                bmp.Save(@"C:\Users\Dhibi\Desktop\" + guid + ".Png", ImageFormat.Png);

            }
        }
        catch (Exception ex)
        {

            //System.Windows.MessageBox.Show(ex.Message);
        }
    }

0 个答案:

没有答案