gpt4 book ai didi

c# - 如何在 C# 中捕获 Windows 应用商店应用程序的窗口内容

转载 作者:IT王子 更新时间:2023-10-29 04:19:42 25 4
gpt4 key购买 nike

我有一些代码可以捕获 Windows 桌面应用程序内容并保存到 .NET 中的位图对象。它使用 User32.dll 和 Gdi32.dll (BitBlt) 并且工作正常。但是,当我为代码提供一个包含 Windows 应用商店应用程序的窗口的句柄时,代码会生成全黑位图。我不确定这是安全功能还是什么。我不能使用 ScreenCapture api,因为窗口的内容在调整大小后几乎总是比屏幕高/大。对于 Windows 应用商店应用程序,有没有人幸运地捕获窗口内容,即使它们比屏幕大?

编辑:请注意,我正在 try catch 不同程序的窗口,而不是我自己的程序。我的程序可以假设为 .NET 4.6.1/C# 中的 Windows 控制台应用程序

此外,我知道这在 Windows API 中一定是可行的,因为 Aero Peek 功能,如果您将鼠标悬停在运行程序图标上的任务栏上,会显示窗口的完整高度,包括屏幕外组件。 (见右边的高窗口,设置为 6000px 比我的显示器高很多)

see tall window on right, set to 6000px much higher than my display

最佳答案

从 Windows 8.1 开始,您可以使用 Windows.UI.Xaml.Media.Imaging.RenderTargetBitmap 将元素呈现为位图。对此有几点警告:

  1. 您可以捕获屏幕外的元素,只要它们在 XAML 可视化树中并且将 Visibility 设置为 Visible 而不是 Collapsed.
  2. 某些元素(例如视频)不会被捕获。

有关详细信息,请参阅 API:

https://msdn.microsoft.com/library/windows/apps/xaml/windows.ui.xaml.media.imaging.rendertargetbitmap.aspx

关于c# - 如何在 C# 中捕获 Windows 应用商店应用程序的窗口内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37931890/

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