WPF后台截屏问题 用WPF做了一个桌面软件,它能够根据一个请求生成一张图,然后点击按钮保存当前软件截屏(其实就是想要生成的那张图)。实际上我们的请求很多,想做成一个自动化的。可以接收若干个请求,最后的效果是批量针对每个请求都生成一张截图。如果这个程序能在后台中运行(无UI界面)则更好,所以想请教大牛,这个后台运行的无UI却能截图的功能如何实现? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 const uint KEYEVENTF_EXTENDEDKEY = 0x1;const uint KEYEVENTF_KEYUP = 0x2;const byte VK_SNAPSHOT = 0x2C;Native.keybd_event(VK_SNAPSHOT, 0x45, KEYEVENTF_EXTENDEDKEY, UIntPtr.Zero);Native.keybd_event(VK_SNAPSHOT, 0x45, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, UIntPtr.Zero);IDataObject iObj = Clipboard.GetDataObject();if (iObj.GetDataPresent(DataFormats.Bitmap, true)){ Bitmap bmpScreen = iObj.GetData(DataFormats.Bitmap, true) as Bitmap; Bitmap bmpOutput = new Bitmap((int)this.Rect.Width, (int)this.Rect.Height, System.Drawing.Imaging.PixelFormat.Format24bppRgb); Graphics g = Graphics.FromImage(bmpOutput); Rectangle destRectangle = new Rectangle(0, 0, (int)this.Rect.Width, (int)this.Rect.Height); g.DrawImage(bmpScreen,destRectangle, (int)this.Rect.X, (int)this.Rect.Y, (int)this.Rect.Width, (int)this.Rect.Height, GraphicsUnit.Pixel); bmpOutput.Save(sPath, System.Drawing.Imaging.ImageFormat.Bmp);} 楼主试过WPF中的VisualBrush了吗?要显示的内容隐藏用Opacity=0,不显示的用Visibility=Hidden。 PrintScreen这个方法,在电脑索屏或者软件最小化的时候,就不好用了.而且PrintScreen还会有一个截取界面中某一部分的问题,这个截取也有点麻烦.不过我已经找到了更好的解决方法,谢谢了 如何将datatable中的数据保存成xml文件 请教各位在WPF工程里面启动窗口是否可以是类似Form.cs的窗口 注册表问题,急!!! 菜鸟在线等答案。 TextBox的问题。 []ListView的ContextMenuStrip和滚动条问题 关于屏保 关于地址栏里标识的问题 反射时用字符串作为类型进行强制转换——高手进 qinuxman 求问visual studio怎么增加编译参数。 如何使Datageridview中的数据可以更改? 我在richtextbox的textchanged()及鼠标水平和垂直滑动事件中都写了如下两行代码,但屏幕怎么总是闪啊?
const uint KEYEVENTF_EXTENDEDKEY = 0x1;
const uint KEYEVENTF_KEYUP = 0x2;
const byte VK_SNAPSHOT = 0x2C;
Native.keybd_event(VK_SNAPSHOT, 0x45, KEYEVENTF_EXTENDEDKEY, UIntPtr.Zero);
Native.keybd_event(VK_SNAPSHOT, 0x45, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, UIntPtr.Zero);IDataObject iObj = Clipboard.GetDataObject();
if (iObj.GetDataPresent(DataFormats.Bitmap, true))
{
Bitmap bmpScreen = iObj.GetData(DataFormats.Bitmap, true) as Bitmap;
Bitmap bmpOutput = new Bitmap((int)this.Rect.Width, (int)this.Rect.Height, System.Drawing.Imaging.PixelFormat.Format24bppRgb);
Graphics g = Graphics.FromImage(bmpOutput);
Rectangle destRectangle = new Rectangle(0, 0, (int)this.Rect.Width, (int)this.Rect.Height);
g.DrawImage(bmpScreen,destRectangle, (int)this.Rect.X, (int)this.Rect.Y, (int)this.Rect.Width, (int)this.Rect.Height, GraphicsUnit.Pixel);
bmpOutput.Save(sPath, System.Drawing.Imaging.ImageFormat.Bmp);
}
要显示的内容隐藏用Opacity=0,不显示的用Visibility=Hidden。