Skip to main content
在测试中,游戏可能希望自动化将用户添加到其游戏中。在 Microsoft 游戏开发工具包(GDK)中, 只有当游戏调用 XUserAddAsync 时才会添加用户。就 自动化而言,此函数有以下两个主要限制。
  • 如果你使用 AddDefaultUserSilently 标志调用 XUserAddAsync,你不会看到 UI(这 有助于自动化)。然而,你只能获得启动游戏的用户。 使用此标志反复调用该 API 不会改变结果。你只会不断得到 针对同一用户的新句柄。
  • 如果你不使用 AddDefaultUserSilently 标志调用 XUserAddAsync,则会出现 UI 并等待有人按下按钮。这会破坏自动化。
为了帮助在测试代码中自动添加用户,Microsoft 游戏开发工具包(GDK)支持启用一个 无头选项,允许你在不显示需要用户输入的 UI 的情况下添加用户。以下 步骤概述了基本方法。
  1. 要将已登录的用户添加到主机,可以使用带有 signin 选项的 xbuser(NDA 主题) 命令行工具。为每个用户重复此步骤。
  2. 要在游戏中添加用户时抑制通常会显示的 UI,你可以 使用带有 HeadlessXuser 选项的 xbconfig(NDA 主题) 命令行工具,如下所示。
  1. 启动游戏。
  2. 在游戏中时,每次不带 AddDefaultUserSilently 标志调用 XUserAddAsync 都会返回已登录到主机、并且游戏尚未为其关联任何未关闭 XUserHandle 对象的第一个用户。
  3. 如果游戏持续调用 XUserAddAsync,最终会耗尽已登录到主机的用户 数量。发生这种情况后,XUserAddAsync 会 返回 E_ABORT。这与如果用户取消登录到主机(或以其他方式退出 UI)时 XUserAddAsync 会返回的错误完全相同。
  4. 出于测试目的,游戏可能希望知道登录到主机的 test accounts 数量。为便于此,游戏可以调用 CreateProcess 并使用 list 选项 启动 wduser 命令行工具。
最后修改于 2026年8月13日