永发信息网

C#抓屏(截屏)

答案:2  悬赏:40  手机版
解决时间 2021-07-19 08:49
  • 提问者网友:蔚蓝的太阳
  • 2021-07-18 23:11

就是要用C#实现一个截图的工具

网上写的有一个CaptureImage控件,但我在C#上就没找到这个控件!!

谁能解除一下啊!!

最佳答案
  • 五星知识达人网友:煞尾
  • 2021-07-19 00:38

我之前用的是VS2008 可以自己添加组件的,你找找有没有可以添加组件的方法!

全部回答
  • 1楼网友:你哪知我潦倒为你
  • 2021-07-19 00:47

/// <summary> /// 保存屏幕图像到指定文件 /// </summary> /// <param name="FileName">保存于指定的文件中 </param> /// <param name="Format">指定文件格式.如:jpeg ,bmp 等等 </param> public static void CaptureDesktop() { Bitmap MemoryImage; //在内存中保存屏幕图像 //获取屏幕的高度,宽度 Size ScreenSize = new Size(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height); IntPtr Desktop = GetDesktopWindow(); //获取Desktop句柄 Graphics Desktops = Graphics.FromHwnd(Desktop); //从句柄转换到图像对象 MemoryImage = new Bitmap(ScreenSize.Width, ScreenSize.Height, Desktops); //创建一个同屏幕高,宽一样的位图对象 Graphics MemoryGraphics = Graphics.FromImage(MemoryImage); //取得它的图像对象 IntPtr Src = Desktops.GetHdc(); //取得桌面的HDC IntPtr Dest = MemoryGraphics.GetHdc(); //取得内存位图的HDC BitBlt(Dest, 0, 0, ScreenSize.Width, ScreenSize.Height-30, Src, 0, 0, (uint)Enum.Parse(typeof(dwRop), dwRop.SRCCOPY.ToString())); Desktops.ReleaseHdc(Src); MemoryGraphics.ReleaseHdc(Dest);

saveFileDialog2.DefaultExt = "jpge";

saveFileDialog2.Filter = "jpge |*.JPG|bmp|*.BMP"; if (saveFileDialog2.ShowDialog() == DialogResult.OK) { MemoryImage.Save(saveFileDialog2.FileName); }

// MemoryImage.Save("d:\\Captured.jpg"); }

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯