当前位置: 首页 > 编程笔记 >

C#利用Windows自带gdi32.dll实现抓取屏幕功能实例

冯嘉珍
2023-03-14
本文向大家介绍C#利用Windows自带gdi32.dll实现抓取屏幕功能实例,包括了C#利用Windows自带gdi32.dll实现抓取屏幕功能实例的使用技巧和注意事项,需要的朋友参考一下

本文实例讲述了C#利用Windows自带gdi32.dll实现抓取屏幕功能,是C#应用程序设计中一个非常实用的功能,现分享给大家供大家参考借鉴。

具体功能代码如下:

internal static void GetScreenShot( )
{
  //获得当前屏幕的大小 
  Rectangle rect = new Rectangle();
  rect = Screen.AllScreens[0].WorkingArea;
   
  //计算图片的大小,因为图片的长和宽有可能超过目前屏幕的大小 
  //创建一个以当前屏幕为模板的图象 
  Control ctl = new Control();
  Graphics g1 = ctl.CreateGraphics();
  //创建以屏幕大小为标准的位图 
  Image MyImage = new Bitmap(rect.Width ,rect .Height, g1);

  Graphics g2 = Graphics.FromImage(MyImage);
  //得到屏幕的DC 
  IntPtr dc1 = g1.GetHdc();
  //得到Bitmap的DC 
  IntPtr dc2 = g2.GetHdc();
  //调用此API函数,实现屏幕捕获 

  BitBlt(dc2, 0, 0, rect.Width, rect.Height, dc1, 0, 0, 13369376);
  //释放掉屏幕的DC 
  g1.ReleaseHdc(dc1);
  //释放掉Bitmap的DC 
  g2.ReleaseHdc(dc2);
  //以JPG文件格式来保存 
  //Image.GetThumbnailImageAbort myCallback = new Image.GetThumbnailImageAbort(ThumbnailCallback);
  //return MyImage.GetThumbnailImage(control.Width, control.Height, myCallback, IntPtr.Zero);
  MyImage.Save("D:\\aa.jpg");
 
}
[System.Runtime.InteropServices.DllImportAttribute("gdi32.dll")]
private static extern bool BitBlt(
 IntPtr hdcDest,  //目标设备的句柄
 int nXDest,    //目标对象的左上角的X坐标
 int nYDest,    //目标对象的左上角的X坐标
 int nWidth,    //目标对象的矩形的宽度
 int nHeight,    //目标对象的矩形的长度
 IntPtr hdcSrc,   //源设备的句柄
 int nXSrc,     //源对象的左上角的X坐标
 int nYSrc,     //源对象的左上角的X坐标
 System.Int32 dwRop //光栅的操作值
);

希望本文C#抓取屏幕实例对大家的C#程序设计有所帮助。

 类似资料:
  • 本文向大家介绍python实现windows倒计时锁屏功能,包括了python实现windows倒计时锁屏功能的使用技巧和注意事项,需要的朋友参考一下 python实现windows倒计时锁屏功能 知识点扩展: Python在windows锁屏的代码 总结 以上所述是小编给大家介绍的python实现windows倒计时锁屏功能 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家

  • 本文向大家介绍利用Redis如何实现自动补全功能,包括了利用Redis如何实现自动补全功能的使用技巧和注意事项,需要的朋友参考一下 忘了redis从哪个版本开启,能够根据输入的部分命令前缀给出提示,即自动补全。接下来笔者介绍基于redis实现这个很酷的功能。 about sorted set 假设结果中有mara,marabel,marcela。现在我们输入mar,就能得到这三个名字,并且输出结果

  • 本文向大家介绍PHP正则+Snoopy抓取框架实现的抓取淘宝店信誉功能实例,包括了PHP正则+Snoopy抓取框架实现的抓取淘宝店信誉功能实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP正则+Snoopy抓取框架实现的抓取淘宝店信誉功能。分享给大家供大家参考,具体如下: PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用: JavaScript正则表达式在线测试工具

  • 本文向大家介绍Android自带API实现分享功能,包括了Android自带API实现分享功能的使用技巧和注意事项,需要的朋友参考一下 前言 在做项目的过程中需要实现文字和图片的分享,有两种方式: 1. 使用android sdk中自带的Intent.ACTION_SEND实现分享。 2. 使用shareSDK、友盟等第三方的服务。 鉴于使用的方便,此次只介绍使用Android sdk中自带的方式

  • 本文向大家介绍VC实现屏幕截词功能的方法详解,包括了VC实现屏幕截词功能的方法详解的使用技巧和注意事项,需要的朋友参考一下 VC程序设计中屏幕上的文字大都是由gdi32.dll的以下几个函数显示的:TextOutA、TextOutW、ExtTextOutA、ExtTextOutW。实现屏幕抓词的关键就是截获对这些函数的调用,得到程序发给它们的参数。 实现的方法有以下三个步骤: 一、得到鼠标的当前位

  • 本文向大家介绍js实现简单锁屏功能实例,包括了js实现简单锁屏功能实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了js实现简单锁屏功能的方法。分享给大家供大家参考。具体实现方法如下: 如果大家不知道什么是锁屏,可以去163信箱看一看,用途是你要离开屏幕一段时间时可以暂时锁住屏幕保留工作空间。带回来只要重新输入密码验证即可恢复到原先的工作空间。 一般都是通过在页面上增加不透明遮罩层实现锁