微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用WM_PRINT捕获屏幕

如何解决使用WM_PRINT捕获屏幕

我发现可以使用此方法对应用程序进行截图(并且我目前正在对应用程序及其运行情况进行截图):

Bitmap image = new Bitmap(x,y,System.Drawing.Imaging.PixelFormat.Format32bppArgb);
Graphics graphics = Graphics.FromImage(image);
IntPtr hDC = graphics.GetHdc();
SendMessage(this.Handle,WM_PRINT,hDC,PRF_CLIENT | PRF_CHILDREN | PRF_ERASEBKGND);
graphics.ReleaseHdc(hDC);

不幸的是,当我尝试将屏幕打印出来(例如,将其更改为此)时,此方法停止工作:

Bitmap image = new Bitmap(x,System.Drawing.Imaging.PixelFormat.Format32bppArgb);
Graphics graphics = Graphics.FromImage(image);
IntPtr hDC = graphics.GetHdc();
SendMessage(WIN32_API.GetDesktopWindow(),PRF_CLIENT | PRF_CHILDREN | PRF_ERASEBKGND);
graphics.ReleaseHdc(hDC);

即使当我尝试获取应用程序的进程然后使用它的处理程序(Process.Handler)时,尽管我可以使用(this.Handler),但仍然无法正常工作。为什么会这样呢?并且有一种方法可以使用此方法(WM_PRINT)打印任何进程吗?我不想使用其他方法

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。