XAppCaptureTakeScreenshot

截取屏幕截图。

语法

HRESULT XAppCaptureTakeScreenshot(  
         XUserHandle requestingUser,  
         XAppCaptureTakeScreenshotResult* result  
)  

参数

requestingUser _In_
类型:XUserHandle

表示请求屏幕截图的用户的句柄。

result _Out_
类型:XAppCaptureTakeScreenshotResult*

返回的屏幕截图结果。

返回值

类型:HRESULT

函数结果。

备注

注意

在时间敏感线程上调用此函数是不安全的。 有关详细信息,请参阅时间敏感线程

注意

Xbox 游戏流式处理不支持此功能。 请参阅下面的“要求”部分,了解哪些平台支持它。

XAppCaptureTakeScreenshot 截取屏幕截图(就像用户触发它一样)。 这将显示 toast 和保存游戏屏幕截图。 如果在 SDR 中运行游戏,将生成单个文件。 如果在 HDR 中运行游戏,会生成两个文件,一个为 HDR 格式,一个为 SDR 格式。 屏幕截图可能会根据用户的偏好自动上传到 Xbox Live。 成功截取屏幕截图后,可以使用 XAppCaptureOpenScreenShotStream 打开屏幕截图流并使用 XAppCaptureReadScreenshotStream 读取屏幕截图来读取生成的文件。 这两个函数都要求您使用从这个函数返回的 XAppCaptureTakeScreenshotResult 中返回的本地 ID。

XAppCaptureTakeScreenshotResult takeScreenshotResult = {0};
XUserHandle user = nullptr;
/* See XUserAddAsync, XUserAddResult on how to initialize XUserHandle */
bool hasHDR = false;

LOG_IF_FAILED(XAppCaptureTakeScreenshot(user, &takeScreenshotResult));

hasHDR = static_cast<bool>(takeScreenshotResult.availableScreenshotFormats & XAppCaptureScreenshotFormatFlag::HDR);

appLog.AddLog("LocalId %s (%s)\n", takeScreenshotResult.localId, hasHDR ? "SDR & HDR" : "SDR only");

要求

头文件:XAppCapture.h

库:xgameruntime.lib

支持平台:Windows、Xbox One 系列主机和 Xbox Series 主机

另请参阅

GameDVR 概述
XAppCapture 成员
XAppCaptureOpenScreenShotStream
XAppCaptureReadScreenShotStream
XAppCaptureCloseScreenshotStream
XAppCaptureTakeScreenshotResult