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

# XAppCaptureTakeScreenshot

> XAppCaptureTakeScreenshot

# XAppCaptureTakeScreenshot

擷取螢幕擷取畫面。

## 語法

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

### 參數

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

代表要求螢幕擷取畫面之使用者的控制代碼。

*result*   \_Out\_\
類型：[XAppCaptureTakeScreenshotResult\*](/zh-TW/reference/system/xappcapture/structs/xappcapturetakescreenshotresult)

傳回的螢幕擷取畫面結果。

### 傳回值

類型：HRESULT

函式結果。

## 備註

<Note>在時間敏感執行緒上呼叫此函式並不安全。如需詳細資訊，請參閱[時間敏感執行緒](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)。\
\[!NOTE]
XBOX Game Streaming 不支援此函式。請參閱下方的「需求」一節，了解支援此函式的平台。\
\[!NOTE]
當配置的空間填滿時，將刪除較舊的螢幕擷取畫面，為新的螢幕擷取畫面騰出空間。請使用 [PLS](/zh-TW/reference/system/xpersistentlocalstorage/xpersistentlocalstorage_members) (Persistent Local Storage)、connected storage (例如 [XGameSave](/zh-TW/reference/system/xgamesave/xgamesave_members) 或 [XGameSaveFiles](/zh-TW/reference/system/xgamesavefiles/xgamesavefiles_members)) 或類似的儲存系統，以在設定的期間內保留螢幕擷取畫面。</Note>

**XAppCaptureTakeScreenshot** 會以如同使用者觸發的方式擷取螢幕擷取畫面。這會顯示快顯通知並儲存遊戲螢幕擷取畫面。
如果遊戲在 SDR 下執行，會產生單一檔案。如果遊戲在 HDR 下執行，會產生兩個檔案，一個為 HDR 格式，另一個為 SDR 格式。
視使用者喜好設定而定，螢幕擷取畫面可能會自動上傳至 XBOX Live。成功擷取螢幕擷取畫面後，可以使用 [XAppCaptureOpenScreenShotStream](/zh-TW/reference/system/xappcapture/functions/xappcaptureopenscreenshotstream) 開啟螢幕擷取畫面資料流，並使用 [XAppCaptureReadScreenshotStream](/zh-TW/reference/system/xappcapture/functions/xappcapturereadscreenshotstream) 讀取螢幕擷取畫面，以讀取產生的檔案。這兩個函式都需要您使用此函式所傳回之 [XAppCaptureTakeScreenshotResult](/zh-TW/reference/system/xappcapture/structs/xappcapturetakescreenshotresult) 中傳回的本機識別碼。

```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");
```

## 需求

**標頭：** XAppCapture.h

**程式庫：** xgameruntime.lib

**支援的平台：** Windows、XBOX One 系列主機和 XBOX Series 主機

## 概念文件

* [時間敏感執行緒](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)

## 另請參閱

[GameDVR 概觀](/zh-TW/build/console-features/game-dvr/gamedvr-broadcast)\
[XAppCapture 成員](/zh-TW/reference/system/xappcapture/xappcapture_members)\
[XAppCaptureOpenScreenShotStream](/zh-TW/reference/system/xappcapture/functions/xappcaptureopenscreenshotstream)\
[XAppCaptureReadScreenShotStream](/zh-TW/reference/system/xappcapture/functions/xappcapturereadscreenshotstream)\
[XAppCaptureCloseScreenshotStream](/zh-TW/reference/system/xappcapture/functions/xappcaptureclosescreenshotstream)\
[XAppCaptureTakeScreenshotResult](/zh-TW/reference/system/xappcapture/structs/xappcapturetakescreenshotresult)


## Related topics

- [XAppCaptureTakeScreenshot](/reference/system/xappcapture/functions/xappcapturetakescreenshot.md)
- [XAppCaptureTakeScreenshotResult](/reference/system/xappcapture/structs/xappcapturetakescreenshotresult.md)
