截屏(带鼠标)

截屏并保存屏幕中的鼠标。截屏比较简单,使用CopyFromScreen就可以做到,但保存屏幕中的鼠标却不能用this.Cursor属性,需要使用到API。


private void button1_Click(object sender, EventArgs e)
{
    Size screenSize = Screen.PrimaryScreen.WorkingArea.Size;
    Image myimage = new Bitmap(screenSize.Width, screenSize.Height);
    Graphics g = Graphics.FromImage(myimage);
    g.CopyFromScreen(new Point(0, 0), new Point(0, 0), new Size(screenSize.Width, screenSize.Height));
    CURSORINFO pci;
    pci.cbSize = Marshal.SizeOf(typeof(CURSORINFO));
    GetCursorInfo(out pci);
    System.Windows.Forms.Cursor cur = new System.Windows.Forms.Cursor(pci.hCursor);
    cur.Draw(g, new Rectangle(pci.ptScreenPos.X, pci.ptScreenPos.Y, cur.Size.Width, cur.Size.Height));
    pictureBox1.Image = myimage;
}

private const Int32 CURSOR_SHOWING = 0x00000001;
[DllImport("user32.dll")]
static extern bool GetCursorInfo(out CURSORINFO pci);

[StructLayout(LayoutKind.Sequential)]
private struct CURSORINFO
{
    public Int32 cbSize;
    public Int32 flags;
    public IntPtr hCursor;
    public Point ptScreenPos;
}

原文链接: C#图像处理:截图程序(包含鼠标)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值