gpt4 book ai didi

C#事件窗口的屏幕截图但不捕获窗口

转载 作者:太空宇宙 更新时间:2023-11-03 13:38:36 25 4
gpt4 key购买 nike

我正在创建一个应用程序,我需要在其中创建一个包含应用程序屏幕截图的 PDF 文件。

我找到了如何创建屏幕截图以及如何将其放入我的文件中。在大多数情况下,一切都运行良好。

当我使用多个屏幕或像 Teamviewer 这样的程序时,我的问题就来了。问题是,我的程序捕获了正确的区域(屏幕上的良好坐标无论何时屏幕)但它捕获了窗口后面的所有内容而不是窗口。

有人知道我做错了什么或者我错过了细节吗?

这是我目前使用的代码:

// creates an rectangle of the size of the window
Rectangle bounds = new Rectangle(
(int)System.Windows.Application.Current.MainWindow.Left+10,
(int)System.Windows.Application.Current.MainWindow.Top+10,
(int)System.Windows.Application.Current.MainWindow.Width-20,
(int)System.Windows.Application.Current.MainWindow.Height-20);

// creates a bitmap with a screenshot of the size of the window
Bitmap bitmap = new Bitmap(bounds.Width, bounds.Height);
Graphics g = Graphics.FromImage(bitmap);
g.CopyFromScreen(new System.Drawing.Point(bounds.Left, bounds.Top), new System.Drawing.Point(0,0), bounds.Size);

提前感谢您提供任何帮助或示例。

最佳答案

我不是很了解你。我认为您需要做的是捕获事件窗口。

Rectangle bounds = Screen.GetBounds(Point.Empty);
using(Bitmap bitmap = new Bitmap(bounds.Width, bounds.Height))
{
using(Graphics g = Graphics.FromImage(bitmap))
{
g.CopyFromScreen(Point.Empty, Point.Empty, bounds.Size);
}
bitmap.Save("test.jpg", ImageFormat.Jpeg);
}

//for capturing current window use

Rectangle bounds = this.Bounds;
using (Bitmap bitmap = new Bitmap(bounds.Width, bounds.Height))
{
using (Graphics g = Graphics.FromImage(bitmap))
{
g.CopyFromScreen(new Point(bounds.Left,bounds.Top), Point.Empty, bounds.Size);
}
bitmap.Save("C://test.jpg", ImageFormat.Jpeg);
}

来源:Capture screenshot of active window?

关于C#事件窗口的屏幕截图但不捕获窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17911746/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com