> ## 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.

# XUser 的無周邊自動化

> XUser 的無周邊自動化

為了進行測試，遊戲可能會想要自動將使用者新增到遊戲中。使用 Microsoft Game Development Kit (GDK) 時，
只有在遊戲呼叫 [XUserAddAsync](/zh-TW/reference/system/xuser/functions/xuseraddasync) 時才會新增使用者。就
自動化而言，此函式有下列兩個主要限制。

* 如果您使用 `AddDefaultUserSilently` 旗標呼叫 `XUserAddAsync`，就不會出現 UI (這
  有助於自動化)。但是，您只能取得啟動遊戲的使用者。
  使用此旗標重複呼叫 API 並不會改變結果。您只會不斷
  取得同一位使用者的新控制代碼。
* 如果您在不使用 `AddDefaultUserSilently` 旗標的情況下呼叫 `XUserAddAsync`，UI
  就會出現並等待有人按下按鈕。這會中斷自動化。

為了協助在測試程式碼中自動新增使用者，Microsoft Game Development Kit (GDK) 支援開啟
無周邊選項，讓您可以新增使用者，而不會顯示需要使用者輸入的 UI。
下列步驟概述基本做法。

1. 若要將已登入的使用者新增到主機，您可以使用 [xbuser (NDA 主題)](/zh-TW/tools/tools-console/commandlinetools/xbuser)
   命令列工具搭配 `signin` 選項。針對每位使用者重複此步驟。
2. 若要隱藏在遊戲中新增使用者時通常會顯示的 UI，您
   可以使用 [xbconfig (NDA 主題)](/zh-TW/tools/tools-console/commandlinetools/xbconfig) 命令列工具搭配 `HeadlessXuser` 選項，如下所示。

```
    xbconfig HeadlessXUser=true
```

3. 啟動遊戲。
4. 在遊戲中，每個未使用
   `AddDefaultUserSilently` 旗標的 `XUserAddAsync` 呼叫，都會傳回第一位登入主機
   且遊戲尚未將任何未關閉的 `XUserHandle` 物件與其建立關聯的使用者。
5. 如果遊戲持續呼叫 `XUserAddAsync`，最終會用盡
   已登入主機的使用者數目。發生這種情況後，`XUserAddAsync`
   會傳回 `E_ABORT`。這與使用者取消登入主機 (或以其他方式退出
   UI) 時 `XUserAddAsync` 會傳回的錯誤完全相同。
6. 為了進行測試，遊戲可能會想要知道已登入主機的
   [測試帳戶](/zh-TW/services/xbox-services/develop/test-accounts/live-setup-testaccounts)數目。為了方便達成此目的，遊戲可以呼叫 `CreateProcess` 並啟動
   `wduser` 命令列工具搭配 `list` 選項。


## Related topics

- [GDK のユーザー ID と XUser API](/ja-jp/build/core-features/common/user/index.md)
- [Custom Tag を使用してイベントをカスタマイズする](/ja-jp/services/playfab/data-analytics/ingest-data/playstream-custom-tags.md)
- [玩家資料重設工具 (XblPlayerDataReset.exe)](/zh-TW/tools/tools-services/live-player-data-reset.md)
- [PlayFab ライブ サービス管理ドキュメント](/ja-jp/services/playfab/live-service-management/index.md)
- [PlayFab リリースノート 2020](/ja-jp/services/playfab/release-notes/2020.md)
