当鼠标的光标在窗口内时,单击鼠标的左键或右键,即可实现截屏功能。
截屏成功后,会自动弹出确认对话框,可即刻关闭,也可等待3秒自动关闭。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace 截屏软件
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_MouseDown(object sender, MouseEventArgs e)
{
//Screen.GetWorkingArea 方法:检索包含指定矩形最大部分的显示器的工作区。 工作区是显示器的桌面区域,不包括任务栏、停靠窗口和停靠工具栏。
Rectangle screenArea = Screen.GetWorkingArea(this);
//Screen.GetBounds 方法:检索包含指定矩形最大部分的显示器的边界。这个区域包括任务栏,就是屏幕显示的物理范围
//Rectangle screenArea = Screen.GetBounds(this);
Bitmap bmp = new Bitmap(screenArea.Width, screenArea.Height);
using (Graphics g = Graphics.FromImage(bmp))
{
g.CopyFromScreen(0, 0, 0, 0, new Size(screenArea.Width, screenArea.Height));
string dateTime = DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss");
bmp.Save("D:" + "\\" + dateTime + ".jpg");
textBox1.Text = null;
textBox1.Text = "D:" + "\\" + dateTime + ".jpg";
pictureBox1.Image = bmp;
//启动定时器
timer1.Interval = 3000;
timer1.Start();
// 显示对话框
MessageBox.Show("截图成功,3秒钟后,这个对话框后自动关闭!", "自动关闭的对话框", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Information);
}
return;
}
private void timer1_Tick(object sender, EventArgs e)
{
// 停止定时器
timer1.Stop();
// 向对话框发送按键 Enter
SendKeys.Send("ENTER");
}
}
效果图: