C#中截屏

using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
using System.Drawing;
using System.Windows.Forms;

namespace Test_1
{
    class Program
    {
        [DllImport("gdi32.dll")]
        private static extern IntPtr CreateDC(string lpszDriver, string lpszDevice, string lpszOutput, IntPtr lpInitData);
        [DllImport("gdi32.dll")]
        private static extern bool BitBlt(IntPtr hdcDest,
                                                                int nXDest,
                                                                int nYDest,
                                                                int nWidth,
                                                                int nHeight,
                                                                IntPtr hdcSrc,
                                                                int nXSrc,
                                                                int nYSrc,
                                                                System.Int32 dwRop);

        static void Main(string[] args)
        {
            IntPtr dc1 = CreateDC("Display", null, null, (IntPtr)null);
            Graphics g1 = Graphics.FromHdc(dc1);
            Bitmap bmp1 = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, g1);
            Graphics bmp2 = Graphics.FromImage(bmp1);
            IntPtr screenHandle = g1.GetHdc();
            IntPtr imageHandle = bmp2.GetHdc();
            BitBlt(imageHandle, 0, 0, Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, screenHandle, 0, 0, 13369376);
            g1.ReleaseHdc();
            bmp2.ReleaseHdc();
            bmp1.Save("C://aaa.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
        }
    }
}

实际上,用C#可以简单实现:

            Bitmap photo = new Bitmap(1024, 768);
            Graphics graphic = Graphics.FromImage(photo);
            graphic.CopyFromScreen(0, 0, 0, 0, new Size(1024, 768));
            photo.Save(@"c:/aa.jpg", System.Drawing.Imaging.ImageFormat.Jpeg); 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值