c#调用API实现抓图
API功能非常强大,这里我们利用API制作一个抓图的小程序。
[DllImport("gdi32.dll", CharSet = CharSet.Auto, SetLastError = true, ExactSpelling = true)]public static extern int BitBlt(IntPtr hDC, int x, int y, int nWidth, int nHeight, IntPtr hSrcDC, int xSrc, int ySrc, int dwRop); //获得当前屏幕的大小Rectangle rect = new Rectangle ( ) ;
rect = Screen.GetWorkingArea ( this ) ;
//创建一个以当前屏幕为模板的图象
Graphics g1 = this.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文件格式来保存
MyImage.Save ( textBox1.Text ,ImageFormat.Jpeg);
string a="当前屏幕已经保存到"+textBox1.Text;
资源:下载
c#调用API实现抓图相关推荐
- 调用API弹出打印机属性对话框
调用api弹出打印机属性对话框 Author:vitoriatang From:Internet .NET Framework封装了很多关于打印的对话框,比如说PrintDialog, PageSe ...
- C#调用API向外部程序发送数据(转载)
转自:http://www.cnblogs.com/trieagle/p/3811375.html C#调用API向外部程序发送数据 最近有可能要做一个项目.在项目中有这么一个功能,在A程序中调用B程 ...
- AHK调用API获取ListView每列的坐标
以下代码获取前3列的横坐标: d_Index 为每列的序号(从 0 开始),lv_ID 为ListView的关联变量名,colW_1.colW_2.colW_3 分别为获取到的每列的横坐标. Loop ...
- 后端调用python_【后端开发】python如何调用api接口
python调用api接口的方式: 接口协议:http.webservice.rpc等. 请求方式:get.post方式 请求参数格式: a. get请求都是通过url?param=xxx&p ...
- python消息推送_Python阿里云消息推送调用API
很多公司测试APP推送时候,应该也是很头疼:推送环境:测试.正式,稍不注意就把测试的push到正式上,导致所有用户都收到 例子很多: 其实阿里.极光都有推送Api,直接调用API就ok,特别是有的公司 ...
- web api接口开发实例_小程序开发如何调用 API 接口,以豆瓣电影为例
API 调用是开发者在小程序开发过程中经常会遇到的问题,本期我们以为调用豆瓣电影 API 为例具体来看 API 的调用过程以及常见的一些问题. 测试用到的小程序是「电影周周看」,内容来自清华大学软件学 ...
- C/C++中调用api设置mysql连接的编码方式
MySQL在C/C++中调用api设置连接mysql的编码方式有以下几种方法: 1. mysqli_set_charset 调用示例: [cpp] view plain copy ret = mysq ...
- [转]c#调用API截图
转自http://blog.csdn.net/hailiannanhai/article/details/6281471 要想完成这个功能,首先要了解一下在C#中如何调用API(应用程序接口)函数.虽 ...
- 防止多重启动之调用Api [收集2005090201]
防止多重启动之调用Api (效果:第二次启动程序则前一进程的窗口跳到最前) using System.Threading; private const int SW_NORMAL = 1; // se ...
最新文章
- word2013插入excel对象报错_修改Word文档中嵌入的Excel对象
- .NET(C#) Internals: 以一个数组填充的例子初步了解.NET 4.0中的并行(二)
- 网络推广外包——网络推广外包专员表示网站营销推广重点细节要抓住
- 每天一道Java题[7]
- 大学物理规范作业25稳恒磁场_山东一地出台规定:严禁家长代批作业,违反规定将被一票否决...
- Spring第三讲:利用注解配置类取代Spring的配置文件
- 区块链和java哪个更难_java 区块链中设计合理的难度系数
- ssl1762-工厂的烦恼【图论,最短路变形(最长路)】
- ASP.NET Web 页面生命历程中的一天
- SQLi LABS Less 25 联合注入+报错注入+布尔盲注
- 【图像处理】MATLAB:基本原理
- 电脑文件的后缀名不见了,如何显示隐藏扩展名?
- 【虚拟仿真】Unity3D中如何实现让3D模型显示在UI前面
- 现代密码学-CA与数字证书详解
- Oracle导入英文日期格式数据出现问题的解决
- 大数据处理技术的总结与分析
- 批处理 统计多个文件数量大小
- java调用java程序,详细说明
- Cortex-M3 (NXP LPC1788)之RTC
- nginx 配置静态资源缓存。解决web静态资源访问过慢