【问题标题】:Capture screen of Windows store AppWindows 商店应用程序的捕获屏幕
【发布时间】:2013-03-30 18:50:01
【问题描述】:

是否可以捕获正在运行的 Windows 商店应用程序的内容?我需要捕获整个屏幕或用户定义的矩形区域。

  1. 应用程序将提供共享选项
  2. 当应用程序正在运行并选择了共享选项时,我想定期获取屏幕截图,例如每秒 4 次
  3. 此屏幕截图图像将发布到服务器,服务器将存储相同的内容

【问题讨论】:

  • 您希望在 Windows 应用商店应用程序中使用它还是桌面应用程序可以?您想要您的应用或任何其他应用的屏幕截图吗?
  • 我只希望它用于 Windows 应用商店应用程序。还有我的应用程序的屏幕截图

标签: windows-runtime winrt-xaml


【解决方案1】:

现在可以在 Windows 8.1 中捕获应用商店应用的屏幕。您需要使用 RenderTargetBitmap 类。

您可以在此处找到示例: http://mariusbancila.ro/blog/2013/11/05/render-the-screen-of-a-windows-store-app-to-a-bitmap-in-windows-8-1/

希望对你有帮助。

【讨论】:

  • 请注意,如果您有任何在屏幕外的东西,即使它的可见性设置为折叠,渲染图像也会包括该区域。如果将屏幕的宽度和高度提供给 RenderAsync 调用,这可能会导致图像被压扁。
【解决方案2】:

您无法以编程方式捕获屏幕。请参阅 MSDN 的以下主题。

Programmatically take snap shot Windows RT.

How to capture screen in Metro app?

【讨论】:

    【解决方案3】:

    在 Windows 8.0 中没有将 Windows 8 XAML UI 呈现为位图的内置机制。根据您的 UI 的复杂程度,您可以实现自己的合成引擎,以使用 Direct2D 将您的 UI 渲染为位图,或使用 WinRT XAML 工具包WriteableBitmap.Render() 方法实现,它对执行您的要求的支持有限(它不呈现所有类型的控件,不支持 RenderTransform 等)。不过,您可以对其进行更新以添加对缺失功能的支持。

    Windows 8.1 API 包括新的'RenderTargetBitmap' 类,该类允许使用其RenderAsync 方法呈现位图。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多