`
huzhenyu
  • 浏览: 191843 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

wpf截取屏幕

    博客分类:
  • c++
阅读更多
private void button1_Click(object sender, RoutedEventArgs e)
        {
            //调用
            IntPtr hDesk = GetDesktopWindow();
            IntPtr hSrce = GetWindowDC(hDesk);
            IntPtr hDest = CreateCompatibleDC(hSrce);
            IntPtr hBmp = CreateCompatibleBitmap(hSrce, (int)SystemParameters.PrimaryScreenWidth, (int)SystemParameters.PrimaryScreenHeight);
            IntPtr hOldBmp = SelectObject(hDest, hBmp);
            bool b = BitBlt(hDest, 0, 0, (int)SystemParameters.PrimaryScreenWidth, (int)SystemParameters.PrimaryScreenHeight, hSrce, 0, 0, CopyPixelOperation.SourceCopy | CopyPixelOperation.CaptureBlt);
            Bitmap bmp = Bitmap.FromHbitmap(hBmp);
            SelectObject(hDest, hOldBmp);
            DeleteObject(hBmp);
            DeleteDC(hDest);
            ReleaseDC(hDesk, hSrce);
            bmp.Save(@"c:\test.png");
            bmp.Dispose();
        }




        [DllImport("gdi32.dll")]
        static extern bool BitBlt(IntPtr hdcDest, int xDest, int yDest, int
        wDest, int hDest, IntPtr hdcSource, int xSrc, int ySrc, CopyPixelOperation rop);

        [DllImport("user32.dll")]
        static extern bool ReleaseDC(IntPtr hWnd, IntPtr hDc);
        [DllImport("gdi32.dll")]
        static extern IntPtr DeleteDC(IntPtr hDc);
        [DllImport("gdi32.dll")]
        static extern IntPtr DeleteObject(IntPtr hDc);
        [DllImport("gdi32.dll")]
        static extern IntPtr CreateCompatibleBitmap(IntPtr hdc, int nWidth, int nHeight);
        [DllImport("gdi32.dll")]
        static extern IntPtr CreateCompatibleDC(IntPtr hdc);
        [DllImport("gdi32.dll")]
        static extern IntPtr SelectObject(IntPtr hdc, IntPtr bmp);
        [DllImport("user32.dll")]
        public static extern IntPtr GetDesktopWindow();
        [DllImport("user32.dll")]
        public static extern IntPtr GetWindowDC(IntPtr ptr);
分享到:
评论

相关推荐

    WPF录制屏幕与视频录像

    在WPF中,我们可能需要使用System.Windows.Media命名空间下的类,如RenderTargetBitmap和VisualBrush来实现屏幕截图。通过定期更新屏幕快照并合并这些图像,我们可以实现连续的屏幕录制。此外,可能还会用到多线程...

    WPF 截图,仿照qq截图功能

    本项目是基于VS2015进行编译的,旨在提供一种直观且高效的屏幕截取体验。 【描述】:“wpf实现的截图功能,仿照qq截图。编译环境:vs2015。具体介绍在本人博客中。” 在WPF环境中,实现QQ截图的类似功能需要利用到...

    WPF调色器&屏幕取色器

    WPF提供了System.Windows.Interop命名空间,其中的HwndSource类可以让我们访问Win32 API,从而实现屏幕截取。通过Hook鼠标消息,当用户按下特定键时,我们可以获取鼠标位置的像素颜色。使用GetPixel方法获取屏幕上的...

    用wpf做的仿WX的截图工具

    【描述】:“用wpf做的仿WX的截图工具”表明此应用旨在模仿微信的截图功能,可能包括选取屏幕区域、编辑截图、分享等功能。WPF的灵活性和强大的图形处理能力使得实现这样的功能成为可能。 【标签】:“wpf 软件/...

    WPF截图工具

    本项目中的“WPF截图工具”是一个利用WPF技术实现的简单但实用的应用程序,允许用户在Windows操作系统中捕获屏幕快照。 ### 1. WPF基础 WPF是基于XAML(Extensible Application Markup Language)的,这是一种XML...

    wpf 截图demo(源码)

    在Windows Presentation Foundation (WPF) 中,实现屏幕截图功能是一项常见的需求,这在软件开发中尤为实用,例如制作截图工具、游戏录屏软件等。本篇将详细介绍如何利用WPF来实现一个简单的截图功能,包括捕获屏幕...

    WPF仿QQ截图-1

    在Windows Presentation Foundation(WPF)中,模拟QQ截图功能是一项常见的需求,它涉及到屏幕捕获、图像处理以及用户交互等多个技术领域。本篇文章将深入探讨如何在WPF应用程序中实现类似QQ截图的实用功能。 首先...

    wpf截图工具(源代码)

    在本文中,我们将深入探讨基于WPF的截图工具的源代码实现,这是一款利用C#编程语言构建的应用程序。WPF(Windows Presentation Foundation)是.NET Framework的一个重要组件,主要用于构建丰富的用户界面。C#作为...

    WPF项目中使用的屏幕截图、控件截图、打印与导出Excel

    在WPF(Windows Presentation Foundation)项目开发中,经常会遇到需要对屏幕或控件进行截图、打印文档以及将数据导出到Excel的需求。本资源提供的压缩包包含了一个完整的类库源代码和实例项目,旨在帮助开发者高效...

    wpf 截屏 截单独窗口 截遮挡窗口

    在本文中,我们将深入探讨如何使用WPF(Windows Presentation Foundation)技术在Visual Studio 2010中实现屏幕截图功能,包括截取全屏以及处理被遮挡的窗口。WPF是.NET Framework的一个重要组成部分,提供了丰富的...

    WPF截屏,C# 截屏

    在后台代码(MainWindow.xaml.cs)中,为"开始截图"按钮的Click事件添加代码,实现屏幕选择逻辑。我们可以利用System.Windows.Forms.Screen类获取所有显示器的信息,然后弹出一个可移动、可调整大小的透明窗口,让...

    WPF截屏+绘制截图框

    4. **实时预览**:为了实现截图框的实时预览效果,可以将截取的屏幕图像显示在一个Image控件上,然后在Rectangle移动或改变大小时,根据Rectangle的位置和大小更新Image的Source。这需要利用Clip属性来裁剪显示的...

    WPF模仿qq截图.rar

    **WPF模仿qq截图**是基于Windows Presentation Foundation(WPF)框架实现的一项功能,它旨在复制QQ截图工具的核心功能,包括捕获屏幕快照、编辑截图以及保存图片。WPF是微软.NET Framework的一部分,用于构建桌面...

    wpf开发的快捷截图程序,可以截取动态图像

    在这个“wpf开发的快捷截图程序”中,开发者利用了WPF的特性来创建一个轻量级、高效的截图工具,模拟了QQ截图的功能。 **C#编程语言** C#是微软为.NET Framework开发的一种面向对象的编程语言,它简洁、类型安全且...

    WPF仿QQ截图-2

    【标题】"WPF仿QQ截图-2"指的是在Windows Presentation Foundation(WPF)框架下,开发者尝试模仿QQ截图功能的一个项目。WPF是.NET Framework的一部分,主要用于构建桌面应用程序,提供丰富的用户界面和图形渲染能力...

    WPF制作的取色器ColorPicker

    【WPF制作的取色器ColorPicker】是一个基于Windows Presentation Foundation (WPF) 的应用程序,专为用户设计和实现了一种便捷的颜色选取功能。WPF是Microsoft推出的一种用于构建Windows桌面应用程序的技术,它提供...

    仿QQ截图(WPF)

    通过在WPF窗口上创建一个透明的`Canvas`,并在鼠标移动时更新其背景为裁剪区域的屏幕截图,用户可以直观地看到即将截取的部分。 4. **编辑功能**:QQ截图提供了一些基本的编辑工具,如添加箭头、文字和涂鸦等。在...

    WPF鼠标自定义截图.zip

    在本文中,我们将深入探讨如何使用WPF(Windows Presentation Foundation)和C#语言来实现一个鼠标自定义区域截图的功能。WPF是.NET框架的一部分,它为构建丰富的、高性能的桌面应用程序提供了强大的支持。C#是一种...

    wpf做的类似QQ截图的小程序

    本项目是一个利用WPF技术实现的类似于QQ截图的小程序,旨在提供便捷的屏幕截取和编辑功能。 【描述】:这个小程序的核心功能在于模仿QQ截图工具,让用户能够快速、方便地捕捉屏幕上的任意区域,并进行标注或编辑。...

    wpf获取截屏方法

    本篇文章将详细介绍如何利用WPF调用WinForms类库来实现屏幕截图功能,包括全屏截取、窗口截取以及控件截取。 首先,我们需要了解WPF和WinForms的屏幕截图基础。在WinForms中,可以使用Graphics类的DrawToBitmap方法...

Global site tag (gtag.js) - Google Analytics