c#实现winform屏幕截图并保存的示例
usingSystem.Runtime.InteropServices;
usingSystem.Drawing.Imaging;
[System.Runtime.InteropServices.DllImportAttribute("gdi32.dll")]
privatestaticexternboolBitBlt(
IntPtrhdcDest, // 目标 DC的句柄
intnXDest,
intnYDest,
intnWidth,
intnHeight,
IntPtrhdcSrc, // 源DC的句柄
intnXSrc,
intnYSrc,
System.Int32dwRop // 光栅的处理数值
);
private void button1_Click(object sender, System.EventArgs e)
{
//获得当前屏幕的大小
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 ( @"c:/Capture.jpg" , ImageFormat.Jpeg );
MessageBox.Show ( "当前屏幕已经保存为C盘的capture.jpg文件!" ) ;
}
相关文章
- C# Winform界面美化(借助IrisSkin实现)
- C#自定义控件之-winform美化「建议收藏」
- C# winform 界面美化技巧(扁平化设计)
- c html美化winform,C# WinForm界面美化
- 第一个C# Winform实例
- C#的WinForm窗体程序中如何设置TextBox为密码文本框
- 详解C# WinForm如何实现自动更新程序的案例分享
- 1.5万字长文:从 C# 入门 Kafka
- C#几种排序算法
- C#,winform,ShowDialog,子窗体向父窗体传值
- C#中让控件全屏显示的实现代码(WinForm)
- C#Console类的具体用法
- c#winform多线程的小例子
- C#WINFORM强制让窗体获得焦点的方法代码
- 解决C#winForm自定义鼠标样式的两种实现方法详解
- C#mysql插入数据,中文乱码的解决方法
- C#WinForm导出Excel方法介绍
- C#正则表达式分解和转换IP地址实例(C#正则表达式大全c#正则表达式语法)
- c#唯一值渲染实例代码
- C#中IList<T>与List<T>的区别深入解析
- C++调用C#的DLL实现方法