c#实现winform屏幕截图并保存的示例
发布时间:2022-08-09 09:06:33
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文件!" ) ;
}


猜你喜欢
- 前言本文将演示如何将字符串的单词倒序输出。注意:在这里我不是要将“John” 这样的字符串倒序为成“nhoJ”。这是不一样的,因为它完全倒序
- 1 引言伴随着信息技术的快速发展,近年来,人们的生活已经离不开计算机。生活娱乐几乎都是在计算机上进行的。其中的扫雷游戏就是之一。扫雷游戏是微
- 本文实例讲述了C#虚函数用法。分享给大家供大家参考。具体如下:using System;namespace Test2 { cl
- EntityWrapper的常用方法#WHERE (issue_type = ?) AND (status = ? OR status =
- 一、简介用法ScrollView大致相同二、方法1)HorizontalScrollView水平滚动控件使用方法1、在layout布局文件的
- 起源 [1946: John von Neumann, Stan Ulam, and Nick Metropolis, all a
- 前言开发传统Java WEB工程时,我们可以使用JSP页面模板语言,但是在SpringBoot中已经不推荐使用了。SpringBoot支持如
- 在Word中可将文件通过OLE对象嵌入的方式插入到文档,包括Word、excel、PDF、PPT、图片、宏文件、文件包等在内的多种文件类型。
- 一、注解(annotations)列表@SpringBootApplication:包含了@ComponentScan、@Configura
- 代码如下:public class TempTest { public static void main(String[] args) {
- activity A和BA 获取数据的activity B返回数据的activity点击A上的按钮,在A的textview上显示
- 前段时间做课程作业网站后端,运用Spring boot+MyBatis的框架进行设计,Postman进行接口的检测,出现了一些问题。出现的问
- 背景环境需要设置代理才能够访问外部网络,如果只是运行java程序来访问网络,我们可以通过java -jar test.jar -Dproxy
- public final class Integer extends Number implements Comparable<Int
- Executor接口基于以下方法可以完成增,删,改查以及事务处理等操作。事实上,mybatis中的所有数据库操作是通过调用这些方法实现的。p
- 为什么我们要爬取数据在大数据时代,我们要获取更多数据,就要进行数据的挖掘、分析、筛选,比如当我们做一个项目的时候,需要大量真实的数据的时候,
- 实例如下:ServletRequestAttributes aRequestAttributes=(ServletRequestAttrib
- 本文实例讲述了C#封装的常用文件操作类。分享给大家供大家参考。具体如下:这个C#类封装了我们经常能用到的文件操作方法,包括读写文件、获取文件
- System.Collections.ArrayList类是一个特殊的数组。通过添加和删除元素,就可以动态改变数组的长度。一.优点1. 支持
- JPA介绍JPA(Java Persistence API)是Sun官方提出的Java持久化规范。它为Java开发人员提供了一种对象/关联映