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

# Simulation des entrées de manette

> Décrit comment simuler des entrées de manette sur une console de développement XBOX One en vue d'une utilisation dans un atelier de test automatisé ou un outil autonome.

# Simulation des entrées de manette

Lorsque vous testez un titre XBOX One, il n'est pas toujours efficace qu'une personne utilise une manette physique pour interagir avec la console de développement. Vous pouvez automatiser les tests unitaires, les tests de contrainte, les tests de longue durée et les tests utilisateur en simulant par programmation les entrées de manette à l'aide de XBOX Tools Framework (XTF) et du XBOX Test Toolkit sur un ordinateur. Il est possible de simuler des entrées de manette pour plusieurs consoles en même temps afin de tester des scénarios multijoueurs en ligne.

Pour simuler des entrées de manette, ajoutez `XtfInput.lib` à **Configuration Properties** > **Linker** > **Input** > **Additional Dependencies** et incluez `XtfInput.h` dans les fichiers sources de votre atelier de test ou de votre outil autonome.

* `XtfInput.lib` se trouve dans `<GDK Install Path>\toolKit\lib\amd64`
* `XtfInput.h` se trouve dans `<GDK Install Path>\toolKit\include`

<Note>
  Les applications Xtf ne peuvent pas cibler les systèmes 32 bits. Vous devez vous assurer que vos options de génération ciblent un système 64 bits. Suivez les étapes ci-dessous pour configurer votre projet afin qu'il cible le 64 bits.

  1. Ouvrez le menu **BUILD** dans la barre contextuelle supérieure, puis sélectionnez **Configuration Manager**.
  2. Sélectionnez la liste déroulante **Active solution platform:** (qui est très probablement définie sur Win32), puis sélectionnez **\<New\..>**.
  3. Sélectionnez la liste déroulante **Type or select the new platform:**, puis sélectionnez **x64**. Copiez les paramètres de votre configuration préférée (très probablement Win32).
  4. Sélectionnez **OK** pour ajouter la nouvelle configuration.
</Note>

#### Pour simuler des entrées de manette

1. Appelez [XtfCreateInputClient](/fr/reference/tools/xtf/xtfinput/methods/xtfcreateinputclient-xtfinput-xbox-windows-m) en spécifiant l'adresse de la console cible pour créer une instance de [IXtfInputClient](/fr/reference/tools/xtf/xtfinput/classes/IXtfInputClient/ixtfinputclient-xtfinput-xbox-windows-t).
2. Appelez [IXtfInputClient::ConnectGamepad](/fr/reference/tools/xtf/xtfinput/classes/IXtfInputClient/methods/connectgamepad-ixtfinputclient-xtfinput-xbox-windows-m) pour créer une manette virtuelle.
3. Définissez une structure [GAMEPAD\_REPORT](/fr/reference/tools/xtf/xtfinput/structures/GAMEPAD_REPORT-xtfinput-xbox-windows-t) contenant l'état de manette souhaité. Par exemple, pour simuler l'appui sur le bouton **A**, vous utiliserez `gamepadReport.Buttons = A;`.
4. Appelez [IXtfInputClient::SendGamepadReport](/fr/reference/tools/xtf/xtfinput/classes/IXtfInputClient/methods/sendgamepadreport-ixtfinputclient-xtfinput-xbox-windows-m) avec l'ID de manette retourné par [ConnectGamepad](/fr/reference/tools/xtf/xtfinput/classes/IXtfInputClient/methods/connectgamepad-ixtfinputclient-xtfinput-xbox-windows-m) et la structure [GAMEPAD\_REPORT](/fr/reference/tools/xtf/xtfinput/structures/GAMEPAD_REPORT-xtfinput-xbox-windows-t) de l'étape précédente.
5. Attendez au moins 16 ms, puis appelez de nouveau [IXtfInputClient::SendGamepadReport](/fr/reference/tools/xtf/xtfinput/classes/IXtfInputClient/methods/sendgamepadreport-ixtfinputclient-xtfinput-xbox-windows-m) pour réinitialiser l'état de la manette si nécessaire. Par exemple, pour simuler le relâchement du bouton **A**, vous utiliserez `gamepadReport.Buttons = NONE`.
6. Répétez les étapes 3 à 5 pour envoyer d'autres appuis sur des boutons.
7. Appelez [DisconnectGamepad](/fr/reference/tools/xtf/xtfinput/classes/IXtfInputClient/methods/disconnectgamepad-ixtfinputclient-xtfinput-xbox-windows-m) lorsque vous avez terminé afin de garantir la libération des ressources allouées pour la manette virtuelle.

L'exemple de code suivant montre comment simuler par programmation des entrées de manette.

**C++**

```cpp theme={null}
#include "XtfInput.h"  

...  

IXtfInputClient * inputClient;
UINT64 controllerID;
GAMEPAD_REPORT gamepadReport = {};

// replace with the IP address of your devkit
XtfCreateInputClient(L"1.2.3.4", IID_PPV_ARGS(&inputClient));
inputClient->ConnectGamepad(&controllerID);

// give time for the connection to settle before sending input reports
Sleep(250);

gamepadReport.Buttons = A;
inputClient->SendGamepadReport(controllerID, gamepadReport);

Sleep(16);

gamepadReport.Buttons = NONE;
inputClient->SendGamepadReport(controllerID, gamepadReport);

...

inputClient->DisconnectGamepad(controllerID);  
```

## Voir aussi

##### Référence

* [XtfInput](/fr/reference/tools/xtf/xtfinput/xtfinput-xbox-microsoft-n)


## Related topics

- [XR-112 Établissement d'un utilisateur et d'une manette pendant l'activation initiale et la reprise](/fr-CA/publishing/certification/xr/xr-112.md)
- [XR-112 Établissement d'un utilisateur et d'une manette lors de l'activation initiale et de la reprise](/fr/publishing/certification/xr/xr-112.md)
- [XR115 Ajout et retrait d'utilisateurs ou de manettes pendant la partie](/fr/publishing/certification/fma/xr-115.md)
- [XR115 Ajout et retrait d'utilisateurs ou de manettes pendant le jeu](/fr-CA/publishing/certification/fma/xr-115.md)
- [XBOX Requirements pour les jeux XBOX](/fr/publishing/certification/xbox-requirements.md)
