> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# XAppCaptureTakeScreenshot

> XAppCaptureTakeScreenshot

# XAppCaptureTakeScreenshot

截取屏幕截图。

## Syntax

```cpp theme={null}
HRESULT XAppCaptureTakeScreenshot(  
         XUserHandle requestingUser,  
         XAppCaptureTakeScreenshotResult* result  
)  
```

### Parameters

*requestingUser*   \_In\_\
类型：XUserHandle

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

*result*   \_Out\_\
类型：[XAppCaptureTakeScreenshotResult\*](https://docs.xbox.com/zh-CN/reference/system/xappcapture/structs/xappcapturetakescreenshotresult.md)

返回的屏幕截图结果。

### Return value

类型：HRESULT

函数结果。

## Remarks

> [!NOTE]
>
> 此函数在时间敏感线程上调用不安全。有关详细信息，请参阅[时间敏感线程](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)。\
> \[!NOTE]
> XBOX Game Streaming 不支持此函数。请参阅下面的"要求"部分了解支持它的平台。\
> \[!NOTE]
> 当分配的空间被填满时，较旧的屏幕截图将被删除，以为新的屏幕截图腾出空间。请使用 [PLS](https://docs.xbox.com/zh-CN/reference/system/xpersistentlocalstorage/xpersistentlocalstorage_members.md)（持久本地存储）、已连接存储（例如 [XGameSave](https://docs.xbox.com/zh-CN/reference/system/xgamesave/xgamesave_members.md) 或 [XGameSaveFiles](https://docs.xbox.com/zh-CN/reference/system/xgamesavefiles/xgamesavefiles_members.md)）或类似的存储系统，以在设定的时间段内保留屏幕截图。

**XAppCaptureTakeScreenshot** 如同用户触发一样截取屏幕截图。这将显示一条通知并保存游戏屏幕截图。
如果游戏以 SDR 运行，则生成单个文件。如果游戏以 HDR 运行，则生成两个文件，一个为 HDR 格式，一个为 SDR 格式。
屏幕截图可能会根据用户偏好自动上传到 XBOX Live。屏幕截图成功截取后，可通过使用 [XAppCaptureOpenScreenShotStream](https://docs.xbox.com/zh-CN/reference/system/xappcapture/functions/xappcaptureopenscreenshotstream.md) 打开屏幕截图流并使用 [XAppCaptureReadScreenshotStream](https://docs.xbox.com/zh-CN/reference/system/xappcapture/functions/xappcapturereadscreenshotstream.md) 读取屏幕截图来读取生成的文件。这两个函数都需要使用此函数返回的 [XAppCaptureTakeScreenshotResult](https://docs.xbox.com/zh-CN/reference/system/xappcapture/structs/xappcapturetakescreenshotresult.md) 中返回的本地 ID。

```cpp theme={null}
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");
```

## Requirements

**头文件：** XAppCapture.h

**库：** xgameruntime.lib

**受支持的平台：** Windows、XBOX One 系列主机和 XBOX Series 主机

## Conceptual documentation

* [时间敏感线程](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)

## See also

[GameDVR 概述](https://docs.xbox.com/zh-CN/build/console-features/game-dvr/gamedvr-broadcast.md)\
[XAppCapture Members](https://docs.xbox.com/zh-CN/reference/system/xappcapture/xappcapture_members.md)\
[XAppCaptureOpenScreenShotStream](https://docs.xbox.com/zh-CN/reference/system/xappcapture/functions/xappcaptureopenscreenshotstream.md)\
[XAppCaptureReadScreenShotStream](https://docs.xbox.com/zh-CN/reference/system/xappcapture/functions/xappcapturereadscreenshotstream.md)\
[XAppCaptureCloseScreenshotStream](https://docs.xbox.com/zh-CN/reference/system/xappcapture/functions/xappcaptureclosescreenshotstream.md)\
[XAppCaptureTakeScreenshotResult](https://docs.xbox.com/zh-CN/reference/system/xappcapture/structs/xappcapturetakescreenshotresult.md)


## Related topics

- [XAppCaptureTakeScreenshotResult](https://docs.xbox.com/zh-CN/reference/system/xappcapture/structs/xappcapturetakescreenshotresult.md)
- [XAppCaptureOpenScreenshotStream](https://docs.xbox.com/zh-CN/reference/system/xappcapture/functions/xappcaptureopenscreenshotstream.md)
- [XAppCaptureScreenshotStream](https://docs.xbox.com/zh-CN/reference/system/xappcapture/structs/xappcapturescreenshotstream.md)
- [XAppCaptureReadScreenshotStream](https://docs.xbox.com/zh-CN/reference/system/xappcapture/functions/xappcapturereadscreenshotstream.md)
- [XAppCaptureTakeDiagnosticScreenshot](https://docs.xbox.com/zh-CN/reference/system/xappcapture/functions/xappcapturetakediagnosticscreenshot.md)
