我有一些代码,用于捕获Windows桌面应用程序的内容并保存到.NET中的位图对象。 它使用User32.dll和Gdi32.dll(BitBlt)并且运行良好。 然而,当我给代码一个持有Windows Store应用程序的窗口句柄时,该代码会产生全黑色位图。 我不确定这是否是安全功能。 由于窗口的内容在调整大小后几乎总是比屏幕更高/更大,因此我无法使用ScreenCapture API。 是否有人尝试过在Windows Store应用程序中捕获窗口内容,即使它们比屏幕更大?
编辑:请注意,我正在尝试捕获不同程序的窗口,而不是我的程序。 可以假定我的程序是.NET 4.6.1 / C#中的Windows控制台应用程序。
此外,我知道这必须在Windows API中以某种方式实现,因为Aero Peek功能(如果你将鼠标悬停在任务栏上运行的程序图标上,则显示窗口的完整高度,包括屏幕外组件。 (请参见右侧的高窗口,设置为6000px,比我的显示器高得多)。
编辑:请注意,我正在尝试捕获不同程序的窗口,而不是我的程序。 可以假定我的程序是.NET 4.6.1 / C#中的Windows控制台应用程序。
此外,我知道这必须在Windows API中以某种方式实现,因为Aero Peek功能(如果你将鼠标悬停在任务栏上运行的程序图标上,则显示窗口的完整高度,包括屏幕外组件。 (请参见右侧的高窗口,设置为6000px,比我的显示器高得多)。