Winform屏幕截图保存C#代码

代码如下:已在项目中实现:http://hovertree.com/h/bjaf/76q5yeli.htm

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

全栈程序员社区此处内容已经被作者隐藏,请输入验证码查看内容
验证码:
请关注本站微信公众号,回复“验证码”,获取验证码。在微信里搜索“全栈程序员社区”或者“www_javaforall_cn”或者微信扫描右侧二维码都可以关注本站微信公众号。

代码如下:

 1 using System.Runtime.InteropServices;
 2 using System.Drawing.Imaging;
 3 
 4  
 5 
 6     [System.Runtime.InteropServices.DllImportAttribute("gdi32.dll")]
 7     private static extern bool BitBlt(
 8 
 9                     IntPtr hdcDest,   //   目标   DC的句柄   
10                     int nXDest,
11                     int nYDest,
12                     int nWidth,
13                     int nHeight,
14                     IntPtr hdcSrc,     //   源DC的句柄   
15                     int nXSrc,
16                     int nYSrc,
17                     System.Int32 dwRop     //   光栅的处理数值   
18                       ); 
19 
20  
21 
22   private   void   button1_Click(object   sender,   System.EventArgs   e)   
23   {   
24   //获得当前屏幕的大小   http://www.cnblogs.com/roucheng/
25   Rectangle   rect   =   new   Rectangle   (   )   ;   
26   rect   =   Screen.GetWorkingArea   (   this   )   ;   
27   //创建一个以当前屏幕为模板的图象   
28   Graphics   g1   =   this.CreateGraphics   (   )   ;   
29   //创建以屏幕大小为标准的位图     
30   Image   MyImage   =   new   Bitmap   (   rect.Width   ,   rect.Height   ,   g1   )   ;   
31   Graphics   g2   =   Graphics.FromImage   (   MyImage   )   ;   
32   //得到屏幕的DC   
33   IntPtr   dc1   =   g1.GetHdc   (   )   ;   
34   //得到Bitmap的DC     
35   IntPtr   dc2   =   g2.GetHdc   (   )   ;   
36   //调用此API函数,实现屏幕捕获   
37   BitBlt   (   dc2   ,   0   ,   0   ,   rect.Width   ,   rect.Height   ,   dc1   ,   0   ,   0   ,   13369376   )   ;   
38   //释放掉屏幕的DC   
39   g1.ReleaseHdc   (   dc1   )   ;   
40   //释放掉Bitmap的DC     
41   g2.ReleaseHdc   (   dc2   )   ;   
42   //以JPG文件格式来保存   
43   MyImage.Save   (   @"c:/Capture.jpg"   ,   ImageFormat.Jpeg   );   
44   MessageBox.Show   (   "当前屏幕已经保存为C盘的capture.jpg文件!"   )   ;   
45   }

 已在项目中实现:http://hovertree.com/h/bjaf/76q5yeli.htm

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/120703.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • dhcp option 67_DHCP HOST

    dhcp option 67_DHCP HOST1)DHCP客户端在初始化时广播发送请求报文,这时的请求报文并不包含option82选项。2)DHCP中继代理将option82选项添加到接收到的请求报文尾部后中继转发给DHCP服务器。DHCPOPTION82选项的子选项1(代理电路ID)默认是DHCP客户端所连接的交换机的接口信息(VLan名加物理端口名),也可以由用户自己配置代理电路ID,option82选项的子选项2(代理远程ID)是DHCP中继设备本身的MAC地址。3)DHCP服务器收到DHCP中继设备转发的DHCP请求…

    2022年10月16日
    0
  • 分享pycharm如何安装插件(Plugins)

    分享pycharm如何安装插件(Plugins)链接:https://plugins.jetbrains.com/pycharm一、把插件的zip文件下载到本地二、File=>settings=>plugins本来可以像vscode一样直接搜直接安装,但是它一直转不出来,所以我先去上面的官网下载插件到本地再安装三、点开updates后面的小齿轮,选择installpluginfromdisk(从硬盘下载),选择刚刚下…

    2022年8月25日
    8
  • Laravel框架的核心架构,你懂多少?

    Laravel框架的核心架构,你懂多少?

    2022年2月19日
    32
  • @[TOC](CDN防御与高防服务器防御的区别

    @[TOC](CDN防御与高防服务器防御的区别(CDN防御与高防服务器防御的区别#市面上的网络防御工具有许多,其中大部分中使用的是CDN防御和高防服务器防御,那我们首先来了解CDN防御和高防服务器防御有什么区别。市面上的网络防御工具有许多,其中大部分中使用的是CDN防御和高防服务器防御,那我们首先来了解CDN防御和高防服务器防御有什么区别。CDN防御的全称是ContentDeliveryNetworkDefense,即内容分流网络…

    2022年7月15日
    19
  • localdate转date时区问题_时间戳和LocalDateTime和Date互转和格式化[通俗易懂]

    localdate转date时区问题_时间戳和LocalDateTime和Date互转和格式化[通俗易懂]一前言二时间戳与LocalDateTime互转2.1LocalDateTime转时间戳方式一这边值得一提的是在中国的时区偏移是8小时,本次示例转的时间戳是秒级别,得到的值是一个long值;知识追寻者这边是当前时间,故读者得到的结果与知识追寻者得到的结果不一致;读者可以使用站长工具进行测试校验@TestpublicvoidlocalTimeTest1(){//获得当前时间Local…

    2022年9月27日
    2
  • qi接收启动协议_基于QI协议的无线充电通信系统「建议收藏」

    qi接收启动协议_基于QI协议的无线充电通信系统「建议收藏」龙源期刊网http://doc.docsou.com基于QI协议的无线充电通信系统作者:胡江浩张中炜来源:《中国新通信》2016年第03期【摘要】无线充电技术的学名又叫做无线电能传输,其原理非常类似于变压器,都是通过发射电路产生一个交变电流通过初级线圈,从而在初级线圈上感应出一个交变电磁场,次级线圈通过接收该交变电磁场从而产生感应电流,通过电磁感应实现能源的传输。该文主要介绍了一种无线充电领域中…

    2022年6月16日
    31

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号