• 大小: 380KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-27
  • 语言: C#
  • 标签: 屏幕  截图  C#  源码  鼠标  

资源简介

一款很好用的屏幕截图程序,包含全部源代码。支持鼠标操作,支持局部截图。截图功能基本和QQ截图类似,可以拖动边框,改变边框大小。用Visual Studio 2010 开发,语言为C#。

资源截图

代码片段和文件信息

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Text.Regularexpressions;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace ScreenShot
{
    //定义委托
    public delegate void SetICS(bool isScreenShot);
    public partial class Catch : Form
    {
        //鼠标位置的枚举
        private enum MouseLocation
        {
            LeftUpPointLeftDownPointRightUpPointRightDownPointLeftLineRightLineUpLineDownLine
            InRectangleOutOfRectangle
        }
        private MouseLocation mouseLocation;
        //定义该委托的事件
        public event SetICS SetICSEvent;
        //截屏原始图片
        private Bitmap originBmp;
        //鼠标左键按下的坐标
        private Point mouseDownPoint;
        //调节截图框时的固定不动点
        private Point fixedPoint;
        //是否允许绘制矩形截图状态
        private bool isDraw;
        //截图完成状态
        private bool isCatched;
        //是否允许调节矩形框
        private bool isAdjust;
        //绘制的截图矩形框
        private Rectangle rect;
        public Catch()
        {
            InitializeComponent();
        }
        //将当前屏幕截图,显示到全屏无标题栏窗体上
        private void Catch_Load(object sender EventArgs e)
        {
            //设置截图状态为开始
            SetICSEvent(true);
            //隐藏窗体,保证截屏图片为当前屏幕而不是被窗体覆盖
            this.Hide();
            //以当前窗口大小(窗口默认最大化,即全屏)创建截屏空白图片
            this.originBmp = new Bitmap(this.Widththis.Height );
            //以截屏图片作为画板
            using (Graphics gs = Graphics.FromImage(originBmp))
            {
                //复制当前屏幕到画板上,即将截屏图片的内容设置为当前屏幕
                gs.CopyFromScreen(0 0 0 0 this.Size);
            }
            //将截屏图片设为窗体背景
            this.BackgroundImage = new Bitmap(this.originBmp);
            //添加截屏时的黑色遮罩,即在窗体背景上绘制全屏半透明黑色填充矩形
            using (Graphics blackgs = Graphics.FromImage(this.BackgroundImage))
            {
                using (SolidBrush backBrush = new SolidBrush(Color.FromArgb(100 0 0 0)))
                {
                    blackgs.FillRectangle(backBrush 0 0 this.Width this.Height);
                }
            }
            //显示窗体
            this.Show();
            //激活当前窗体,使之具有焦点。主要针对win8 Metro界面的截图。
            this.Activate();
        }
        //右键点击动作
        private void Catch_MouseClick(object sender MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Right)
            {
                //开始绘制矩形框前,即初始状态,直接退出截图
                if (isCatched == false)
                {
                    this.Close();
                }
                //若矩形框已绘制,设定状态为初始状态,设定矩形各参数为0,
                //刷新窗体重绘,以清除已绘制的矩形,重新开始截图,即撤销功能。
                else
                {
                    this.isCatched = false;
                    this.isAdjust = false;
                    this.isDraw = false;
                    this.rect = 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      99678  2012-10-04 23:17  ScreenShot\34.ico

     文件        167  2016-05-26 22:50  ScreenShot\App.config

     文件       1819  2016-05-26 22:52  ScreenShot\bin\Debug\CatchScreen.application

     文件     522752  2016-05-26 22:52  ScreenShot\bin\Debug\CatchScreen.exe

     文件        167  2016-05-26 22:50  ScreenShot\bin\Debug\CatchScreen.exe.config

     文件       4916  2016-05-26 22:52  ScreenShot\bin\Debug\CatchScreen.exe.manifest

     文件      50688  2016-05-26 22:52  ScreenShot\bin\Debug\CatchScreen.pdb

     文件       1819  2016-05-26 22:52  ScreenShot\bin\Debug\CatchScreen.vshost.application

     文件        167  2016-05-26 22:50  ScreenShot\bin\Debug\CatchScreen.vshost.exe.config

     文件       4916  2016-05-26 22:52  ScreenShot\bin\Debug\CatchScreen.vshost.exe.manifest

     文件        187  2012-10-03 16:48  ScreenShot\bin\Debug\GDI.vshost.exe.config

     文件        490  2012-06-02 22:34  ScreenShot\bin\Debug\GDI.vshost.exe.manifest

     文件       1815  2016-05-26 23:00  ScreenShot\bin\Debug\ScreenShot.application

     文件     522752  2016-05-26 23:00  ScreenShot\bin\Debug\ScreenShot.exe

     文件        167  2016-05-26 22:50  ScreenShot\bin\Debug\ScreenShot.exe.config

     文件       4910  2016-05-26 23:00  ScreenShot\bin\Debug\ScreenShot.exe.manifest

     文件      44544  2016-05-26 23:00  ScreenShot\bin\Debug\ScreenShot.pdb

     文件      11592  2016-05-26 22:59  ScreenShot\bin\Debug\ScreenShot.vshost.exe

     文件        167  2016-05-26 22:50  ScreenShot\bin\Debug\ScreenShot.vshost.exe.config

     文件      21974  2016-05-26 23:00  ScreenShot\Catch.cs

     文件       3009  2016-05-26 23:00  ScreenShot\Catch.Designer.cs

     文件     155840  2012-10-06 15:27  ScreenShot\Catch.resx

    ..A..H.     26624  2016-05-26 23:00  ScreenShot\CatchScreen.suo

     文件       1628  2012-10-06 16:17  ScreenShot\CatchScreen_TemporaryKey.pfx

     文件        759  2016-05-26 23:00  ScreenShot\HotKey.cs

     文件        843  2016-05-26 23:00  ScreenShot\Instruction.cs

     文件       6183  2016-05-26 23:00  ScreenShot\Instruction.Designer.cs

     文件     155637  2012-10-06 14:11  ScreenShot\Instruction.resx

     文件       4265  2016-05-26 23:00  ScreenShot\MainForm.cs

     文件       5899  2016-05-26 23:00  ScreenShot\MainForm.Designer.cs

............此处省略52个文件信息

评论

共有 条评论