C# 窗口截图

无视最小化和遮挡窗口; 关闭窗口的最小化按钮

对该句柄窗口进行截图:

private IntPtr WindowIntptr;

WindowIntptr = this.Handle;

//TestBox.Text = new WindowInteropHelper(this).Handle.ToString();//获取句柄ID
//var windowIntPtr = new IntPtr(1774674);//直接实例化句柄

//窗口句柄
private Image GetWindowImage(IntPtr windownHandle)
{
            Control control = Control.FromHandle(windownHandle);
            Bitmap image = new Bitmap(control.Width, control.Height);
            Graphics gp = Graphics.FromImage(image);
            IntPtr dc = gp.GetHdc();
            PrintWindow(windownHandle, dc, 0);
            gp.ReleaseHdc();
            gp.Dispose();
            string path = $@"D:\日志\{DateTime.Now.ToString("HH-mm-ss")}.jpg";
            //string path = $@"D:\日志\12345678.jpg";
            image.Save(path);
            return image;
}


[DllImport("user32.dll")]
public static extern bool PrintWindow(IntPtr hwnd, IntPtr hdcBlt, UInt32 nFlags);

对当前屏幕进行截图:

try
{
    Screen screen = Screen.AllScreens.FirstOrDefault();
    Rectangle rc = new Rectangle(0, 0, Screen.PrimaryScreen.Bounds.Width,Screen.PrimaryScreen.Bounds.Height);
    Bitmap bitmap = new Bitmap(rc.Width, rc.Height, PixelFormat.Format32bppArgb);
    using (Graphics memoryGrahics = Graphics.FromImage(bitmap))
    {
         memoryGrahics.CopyFromScreen(rc.X, rc.Y, 0, 0, rc.Size, CopyPixelOperation.SourceCopy);//对屏幕指定区域进行图像复制
    }
    bitmap.Save("D://TempImage.png", ImageFormat.Png);
}
catch (Exception ex)
{
    this.tbFTPtset.Text += $"生成图片失败{ex.Message}\r\n";
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值