实现 C# Winform截屏
来源:互联网 发布:90后网络歌手有哪些 编辑:程序博客网 时间:2024/06/04 19:06
using System.Runtime.InteropServices;
using System.Drawing.Imaging;
[System.Runtime.InteropServices.DllImportAttribute("gdi32.dll")]
private static extern bool BitBlt(
IntPtr hdcDest, // 目标 DC的句柄
int nXDest,
int nYDest,
int nWidth,
int nHeight,
IntPtr hdcSrc, // 源DC的句柄
int nXSrc,
int nYSrc,
System.Int32 dwRop // 光栅的处理数值
);
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文件!" ) ;
}
原帖:http://topic.csdn.net/t/20051009/10/4313747.html
在网上无意中找到了这个,贴到这里,给大家分享一下..............
功能还是不够完善,图片有点模糊,因为现在没涉及到这个,没有去修改.......可以做下参考资料
- 实现 C# Winform截屏
- c# winform实现拖拽控
- C# 实现WinForm 全屏
- C# winform进度条实现
- c# winform 实现多线程
- C#实现winform天气预报
- C# winform 实现MD5加密
- C#版winform实现UrlEncode
- C#版winform实现UrlEncode
- C#实现透明WinForm控件
- C# Winform 实现透明label
- c#实现winform关机代码
- C# winform窗体动画实现
- C#实现MD5加密,winform c#2005
- C#实现MD5加密,winform c#2005
- winform:C# WinForm中实现基于角色的权限菜单
- winform:C# WinForm中实现基于角色的权限菜单
- winForm中C#实现Excel的导出
- jQuery入门学习八:动态股票信息
- 计算机二级VFP辅导:VFP工作区基础学习
- Only read original classic books
- Oracle 10046事件
- ADO.NET基础
- 实现 C# Winform截屏
- OEC管理法
- Prepared for a job
- VIM全局替换命令实例
- vfp常用命令函数程序汇总
- 解决:“ScriptManager”不是已知元素。原因可能是网站中存在编译错误。
- 在Dll中创建对话框并调用及AFX_MANAGE_STATE(AfxGetStaticModuleState())
- Wince 6.0 教程---第二课. WINCE6.0 PB开发及编译技巧
- 打印预览中是虚线,打印出来是实线。