> ## 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](/reference/system/xuser/functions/xuseraddasync) を呼び出したときにのみ追加されます。オートメーションに関して、この関数には次の 2 つの主な制限があります。

* `AddDefaultUserSilently` フラグを指定して `XUserAddAsync` を呼び出す場合、UI は表示されません (オートメーションに役立ちます)。ただし、取得できるのはゲームを起動したユーザーのみです。このフラグを指定して API を繰り返し呼び出しても、結果は変わりません。同じユーザーの新しいハンドルを取得し続けるだけです。
* `AddDefaultUserSilently` フラグを指定せずに `XUserAddAsync` を呼び出す場合、UI が表示され、誰かがボタンを押すのを待ちます。これはオートメーションを妨げます。

テスト コードでユーザーの追加のオートメーションを支援するため、Microsoft Game Development Kit (GDK) では、ユーザー入力を必要とする UI を表示せずにユーザーを追加できるヘッドレス オプションを有効にするサポートがあります。次の手順で基本的なアプローチを概説します。

1. サインイン ユーザーをコンソールに追加するには、`signin` オプションを指定して [xbuser (NDA トピック)](/tools/tools-console/commandlinetools/xbuser) コマンドライン ツールを使用できます。各ユーザーに対してこの手順を繰り返します。
2. ゲームでユーザーを追加するときに通常表示される UI を抑制するには、次のように `HeadlessXuser` オプションを指定して [xbconfig (NDA トピック)](/tools/tools-console/commandlinetools/xbconfig) コマンドライン ツールを使用できます。

```
    xbconfig HeadlessXUser=true
```

3. ゲームを起動します。
4. ゲーム内では、`AddDefaultUserSilently` フラグを持たない `XUserAddAsync` の各呼び出しは、コンソールにサインインし、ゲームによって関連付けられた未処理の `XUserHandle` オブジェクトを持たない最初のユーザーを返します。
5. ゲームが `XUserAddAsync` を呼び続けると、最終的にコンソールにサインインしているユーザーの数を使い果たします。この後、`XUserAddAsync` は `E_ABORT` を返します。これは、ユーザーがコンソールへのサインインをキャンセルした場合 (または UI から戻った場合) に `XUserAddAsync` が返すエラーとまったく同じです。
6. テスト目的で、ゲームはコンソールにサインインしている [テスト アカウント](/services/xbox-services/develop/test-accounts/live-setup-testaccounts) の数を知りたい場合があります。これを容易にするために、ゲームは `CreateProcess` を呼び出し、`list` オプションを指定して `wduser` コマンドライン ツールを起動できます。


## Related topics

- [ユーザー](/ja-jp/build/core-features/common/user/user-toc.md)
- [XBOX Manager: コンソール オートメーションの管理](/ja-jp/tools/tools-console/xbom/manager-tool-automation.md)
- [XUserGetTokenAndSignatureAsync](/ja-jp/reference/system/xuser/functions/xusergettokenandsignatureasync.md)
- [XUserGetTokenAndSignatureUtf16Async](/ja-jp/reference/system/xuser/functions/xusergettokenandsignatureutf16async.md)
- [XAG 117: 視覚的注意散漫とモーション設定](/ja-jp/build/game-principles/accessibility/xag-deep-dives/xag-117-visual-distractions-motion.md)
