雷达智富

首页 > 内容 > 程序笔记 > 正文

程序笔记

C#如何实现截屏功能

2024-08-22 82

在 C# 中实现截屏功能可以使用 .NET Framework 或 .NET Core 中提供的一些类库和方法。以下是其中一种实现方法:

使用 System.Drawing 命名空间:

using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.Windows.Forms;

namespace ScreenCaptureExample
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建一个矩形,代表整个屏幕
            Rectangle screenBounds = Screen.PrimaryScreen.Bounds;

            // 创建一个与屏幕大小一致的Bitmap对象
            Bitmap screenshot = new Bitmap(screenBounds.Width, screenBounds.Height, PixelFormat.Format32bppArgb);

            // 创建一个图形对象,用于从屏幕上抓取图像
            using (Graphics graphics = Graphics.FromImage(screenshot))
            {
                // 抓取屏幕图像并绘制到Bitmap上
                graphics.CopyFromScreen(screenBounds.X, screenBounds.Y, 0, 0, screenBounds.Size, CopyPixelOperation.SourceCopy);
            }

            // 保存截图到指定路径
            string filePath = @"C:\Path\To\Save\Screenshot.png";
            screenshot.Save(filePath, ImageFormat.Png);

            Console.WriteLine("截图已保存到:" + filePath);
        }
    }
}

这个示例中,Screen.PrimaryScreen.Bounds 获取主屏幕的边界,创建一个 Bitmap 对象用于保存截图,然后使用 Graphics.CopyFromScreen 方法将屏幕内容复制到这个 Bitmap 对象中。最后,使用 Bitmap.Save 方法将截图保存到指定路径。

请注意,这段代码需要适当的权限来访问屏幕内容,并且在某些情况下可能需要以管理员权限运行。此外,记得对截图保存路径具有写入权限。

这只是其中一种实现方式,你还可以根据具体需求对截图进行更多处理,比如添加鼠标指针、选择特定区域等。

更新于:3个月前
赞一波!3

文章评论

评论问答