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)
上一篇 2021年12月21日 上午10:00
下一篇 2021年12月21日 上午11:00


相关推荐

  • springboot 如何优雅的抛出异常

    springboot 如何优雅的抛出异常

    2020年11月9日
    206
  • pycharm远程运行_泪指轮传说2图文攻略

    pycharm远程运行_泪指轮传说2图文攻略推荐阅读:http://pycharm.iswbm.com这一篇文章是以前的文章,有的朋友已经看过,但是没有关系,因为这次我准备介绍这几大调试工具都是如何调试,又该如何选择。一般情况下,我们开发调试都是在个人PC上完成,遇到问题,开一下Pycharm的调试器,很快就能找到问题所在。可有些时候,项目代码的运行会对运行环境有依赖,必须在部署了相关依赖组件的服务器上才可以运行,这就直接导致了我们不能在本地进行调试。对于这种特殊的场景,就我所知,有如下两种解决方案:pdbRemoteDebug

    2022年8月28日
    4
  • phpstorm 2021 激活码【在线破解激活】

    phpstorm 2021 激活码【在线破解激活】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月17日
    59
  • Matlab实现Huffman编码

    Matlab实现Huffman编码代码 function u c e f huff codec A HUFF CODEC 哈夫曼编码的 MATLAB 实现 author Frank 本程序重点在建树和建表过程 以及求解平均码长和编码效率 因为建表的顺序不一致 可能会导致码表不一致 但是都满足熵编码要求 u 输出排序后的频率分布 c 输出码表 e 输出平均码长 f

    2026年3月18日
    2
  • 随机森林算法原理简要总结怎么写_旋转森林算法

    随机森林算法原理简要总结怎么写_旋转森林算法①RandomForest随机森林算法原理:即bagging法+CART算法生成决策树的结合。RF=bagging+fully-grownCARTdecisiontree②bagging法的核心:bootstrap在原始数据集D中选择若干个子数据集Dt,将子数据集单个单个进行决策树生成。③随机森林的优点:可并行化计算(子集的训练相互独立),效率高继承了CART算法的优点(使用Gini系数选择最优特征及切分点)减小了完全生成树的弊端(因为完全生成树过于复杂,Ein小但E

    2025年7月14日
    6
  • FindWindow和FindWindowEx

    FindWindow和FindWindowEx函数型:HWNDFindWindow(LPCTSTRIpClassName,LPCTSTRIpWindowName);IpClassName:指向一个指定了类名的空结束字符串或一个标识类名字符串的成员的指针。如果该参数为一个成员,则它必须为前次调用theGlobaIAddAtom函数产生的全局成员。该成员为16位,必须位于lpClassName的低16位,高位必须为0。如果为NULL,

    2022年5月31日
    40

发表回复

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

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