Données de Registre pour les contrôleurs de jeuRegistry data for game controllers

Notes

Cette rubrique est destinée aux fabricants de contrôleurs de jeu compatibles Windows 10 et ne s’applique pas à la majorité des développeurs.This topic is meant for manufacturers of Windows 10-compatible game controllers, and doesn't apply to the majority of developers.

L' espace de noms Windows. Gaming. Input permet aux fournisseurs de matériel indépendants d’ajouter des données au registre du PC, en permettant à leurs appareils d’apparaître sous forme de boîtiers, RacingWheels, ArcadeSticks, FlightStickset UINavigationControllers , le cas échéant.The Windows.Gaming.Input namespace allows independent hardware vendors (IHVs) to add data to the PC's registry, enabling their devices to appear as Gamepads, RacingWheels, ArcadeSticks, FlightSticks, and UINavigationControllers as appropriate. Tous les IHV doivent ajouter ces données pour leurs contrôleurs compatibles.All IHVs should add this data for their compatible controllers. En procédant ainsi, tous les jeux UWP (et tous les jeux de bureau qui utilisent l’API WinRT) seront en mesure de prendre en charge votre contrôleur de jeu.By doing this, all UWP games (and any desktop games that use the WinRT API) will be able to support your game controller.

Schéma de mappageMapping scheme

Les mappages d’un appareil avec l’ID de fournisseur (VID) vvvv, l’ID de produit (PID) pppp, la page d’utilisation uuuuet l’ID d’utilisation xxxxsont lus à partir de cet emplacement dans le registre :Mappings for a device with Vendor ID (VID) VVVV, Product ID (PID) PPPP, Usage Page UUUU, and Usage ID XXXX, will be read out from this location in the registry:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\VVVVPPPPUUUUXXXX

Le tableau ci-dessous décrit les valeurs attendues sous l’emplacement racine de l’appareil :The table below explains the expected values under the device root location:

NameName TypeType Requis ?Required? InfoInfo
DésactivéDisabled DWORDDWORD NonNo

Indique que cet appareil particulier doit être désactivé.Indicates that this particular device should be disabled.

  • 0: l’appareil n’est pas désactivé.0: Device is not disabled.
  • 1: l’appareil est désactivé.1: Device is disabled.
DescriptionDescription REG_SZREG_SZ NonNo Brève description de l’appareil.A short description of the device.

Votre programme d’installation de l’appareil doit ajouter ces données au registre (via le programme d’installation ou un fichier INF).Your device installer should add this data to the registry (either via setup or an INF file).

Les sous-clés sous l’emplacement racine de l’appareil sont détaillées dans les sections suivantes.Subkeys under the device root location are detailed in the following sections.

Boîtier de commandeGamepad

Le tableau ci-dessous répertorie les sous-clés obligatoires et facultatives sous la sous-clé du boîtier :The table below lists the required and optional subkeys under the Gamepad subkey:

Sous-cléSubkey Nécessaire ?Required? InfoInfo
MenuMenu OuiYes Voir mappage de boutonSee Button mapping
AffichageView OuiYes
UnA OuiYes
BB OuiYes
XX OuiYes
OY OuiYes
LeftShoulderLeftShoulder OuiYes
RightShoulderRightShoulder OuiYes
LeftThumbstickButtonLeftThumbstickButton OuiYes
RightThumbstickButtonRightThumbstickButton OuiYes
DPadUpDPadUp OuiYes
DPadDownDPadDown OuiYes
DPadLeftDPadLeft OuiYes
DPadRightDPadRight OuiYes
Paddle1Paddle1 NonNo
Paddle2Paddle2 NonNo
Paddle3Paddle3 NonNo
Paddle4Paddle4 NonNo
LeftTriggerLeftTrigger OuiYes Voir mappage d’axeSee Axis mapping
RightTriggerRightTrigger OuiYes
LeftThumbstickXLeftThumbstickX OuiYes
LeftThumbstickYLeftThumbstickY OuiYes
RightThumbstickXRightThumbstickX OuiYes
RightThumbstickYRightThumbstickY OuiYes

Notes

Si vous ajoutez votre contrôleur de jeu en tant que boîtierde commande pris en charge, nous vous recommandons vivement de l’ajouter également en tant que UINavigationControllerpris en charge.If you add your game controller as a supported Gamepad, we highly recommend that you also add it as a supported UINavigationController.

RacingWheelRacingWheel

Le tableau ci-dessous répertorie les sous-clés obligatoires et facultatives sous la sous-clé RacingWheel :The table below lists the required and optional subkeys under the RacingWheel subkey:

Sous-cléSubkey Nécessaire ?Required? InfoInfo
PreviousGearPreviousGear OuiYes Voir mappage de boutonSee Button mapping
NextGearNextGear OuiYes
DPadUpDPadUp NonNo
DPadDownDPadDown NonNo
DPadLeftDPadLeft NonNo
DPadRightDPadRight NonNo
Button1Button1 NonNo
Button2Button2 NonNo
Button3Button3 NonNo
Button4Button4 NonNo
Button5Button5 NonNo
Button6Button6 NonNo
Button7Button7 NonNo
Button8Button8 NonNo
Button9Button9 NonNo
Button10Button10 NonNo
Button11Button11 NonNo
Button12Button12 NonNo
Button13Button13 NonNo
Button14Button14 NonNo
Button15Button15 NonNo
Button16Button16 NonNo
FirstGearFirstGear NonNo
SecondGearSecondGear NonNo
ThirdGearThirdGear NonNo
FourthGearFourthGear NonNo
FifthGearFifthGear NonNo
SixthGearSixthGear NonNo
SeventhGearSeventhGear NonNo
ReverseGearReverseGear NonNo
RouletteWheel OuiYes Voir mappage d’axeSee Axis mapping
LimitationThrottle OuiYes
GarnitureBrake OuiYes
UnidirectionnelClutch NonNo
HandbrakeHandbrake NonNo
MaxWheelAngleMaxWheelAngle OuiYes Voir mappage des propriétésSee Properties mapping

ArcadeStickArcadeStick

Le tableau ci-dessous répertorie les sous-clés obligatoires et facultatives sous la sous-clé ArcadeStick :The table below lists the required and optional subkeys under the ArcadeStick subkey:

Sous-cléSubkey Nécessaire ?Required? InfoInfo
Action 1Action 1 OuiYes Voir mappage de boutonSee Button mapping
Action2Action2 OuiYes
Action3Action3 OuiYes
Action4Action4 OuiYes
Action5Action5 OuiYes
Action6Action6 OuiYes
Special1Special1 OuiYes
Special2Special2 OuiYes
StickUpStickUp OuiYes
StickDownStickDown OuiYes
StickLeftStickLeft OuiYes
StickRightStickRight OuiYes

FlightStickFlightStick

Le tableau ci-dessous répertorie les sous-clés obligatoires et facultatives sous la sous-clé Flightstick :The table below lists the required and optional subkeys under the FlightStick subkey:

Sous-cléSubkey Nécessaire ?Required? InfoInfo
FirePrimaryFirePrimary OuiYes Voir mappage de boutonSee Button mapping
FireSecondaryFireSecondary OuiYes
GroupRoll OuiYes Voir mappage d’axeSee Axis mapping
InclinaisonPitch OuiYes
LacetYaw OuiYes
LimitationThrottle OuiYes
HatSwitchHatSwitch OuiYes Voir mappage de commutateurSee Switch mapping

UINavigationUINavigation

Le tableau ci-dessous répertorie les sous-clés obligatoires et facultatives sous la sous-clé UINavigation :The table below lists the required and optional subkeys under UINavigation subkey:

Sous-cléSubkey Nécessaire ?Required? InfoInfo
MenuMenu OuiYes Voir mappage de boutonSee Button mapping
AffichageView OuiYes
AccepterAccept OuiYes
AnnulerCancel OuiYes
PrimaryUpPrimaryUp OuiYes
PrimaryDownPrimaryDown OuiYes
PrimaryLeftPrimaryLeft OuiYes
PrimaryRightPrimaryRight OuiYes
Context1 (Contexte 1)Context1 NonNo
Context2 (Contexte 2)Context2 NonNo
Context3 (Contexte 3)Context3 NonNo
Context4 (Contexte 4)Context4 NonNo
Pg précPageUp NonNo
Pg suivPageDown NonNo
PageLeftPageLeft NonNo
PageRightPageRight NonNo
ScrollUp (Faire défiler vers le haut)ScrollUp NonNo
ScrollDown (Faire défiler vers le bas)ScrollDown NonNo
ScrollLeft (Faire défiler vers la gauche)ScrollLeft NonNo
ScrollRight (Faire défiler vers la droite)ScrollRight NonNo
SecondaryUpSecondaryUp NonNo
SecondaryDownSecondaryDown NonNo
SecondaryLeftSecondaryLeft NonNo
SecondaryRightSecondaryRight NonNo

Pour plus d’informations sur les contrôleurs de navigation de l’interface utilisateur et les commandes ci-dessus, consultez contrôleur de navigation d’interface utilisateur.For more information about UI navigation controllers and the above commands, see UI navigation controller.

KeysKeys

Les sections suivantes expliquent le contenu de chacune des sous-clés sous les clés de boîtierde commande, RacingWheel, ArcadeStick, Flightsticket UINavigation .The following sections explain the contents of each of the subkeys under the Gamepad, RacingWheel, ArcadeStick, FlightStick, and UINavigation keys.

Mappage de boutonButton mapping

Le tableau ci-dessous répertorie les valeurs nécessaires pour mapper un bouton.The table below lists the values that are needed to map a button. Par exemple, si vous appuyez sur DPadUp sur le contrôleur de jeu, le mappage de DPadUp doit contenir la valeur buttonIndex (le bouton****source est).For example, if pressing DPadUp on the game controller, the mapping for DPadUp should contain the ButtonIndex value (Source is Button). Si DPadUp doit être mappé à partir d’une position de commutateur, le mappage DPadUp doit contenir les valeurs SwitchIndex et SwitchPosition (lasource est switch).If DPadUp needs to be mapped from a switch position, then the DPadUp mapping should contain the values SwitchIndex and SwitchPosition (Source is Switch).

SourceSource Nom de la valeurValue name Type de valeurValue type Nécessaire ?Required? Informations sur la valeurValue info
BoutonButton ButtonIndexButtonIndex DWORDDWORD OuiYes Index dans le tableau de boutons RawGameController .Index in the RawGameController button array.
AxeAxis AxisIndexAxisIndex DWORDDWORD OuiYes Index dans le tableau de l’axe RawGameController .Index in the RawGameController axis array.
Inverser :Invert DWORDDWORD NonNo Indique que la valeur de l’axe doit être inversée avant que les facteurs de pourcentage de seuil et de DebouncePercent soient appliqués.Indicates that the axis value should be inverted before the Threshold Percent and DebouncePercent factors are applied.
ThresholdPercentThresholdPercent DWORDDWORD OuiYes Indique la position de l’axe à laquelle la valeur du bouton mappé passe de l’état enfoncé à l’État relâché.Indicates the axis position at which the mapped button value transitions between the pressed and released states. La plage de valeurs valide est comprise entre 0 et 100.The valid range of values is 0 to 100. Le bouton est considéré comme appuyé si la valeur de l’axe est supérieure ou égale à cette valeur.The button is considered pressed if the axis value is greater than or equal to this value.
DebouncePercentDebouncePercent DWORDDWORD OuiYes

Définit la taille d’une fenêtre autour de la valeur ThresholdPercent , qui est utilisée pour détourner l’état du bouton signalé.Defines the size of a window around the ThresholdPercent value, which is used to debounce the reported button state. La plage de valeurs valide est comprise entre 0 et 100.The valid range of values is 0 to 100. Les transitions d’État du bouton ne peuvent se produire que lorsque la valeur de l’axe dépasse les limites supérieure ou inférieure de la fenêtre de débond.Button state transitions can only occur when the axis value crosses the upper or lower boundaries of the debounce window. Par exemple, un ThresholdPercent de 50 et de DebouncePercent de 10 donne des limites de débond à 45% et 55% des valeurs de l’axe des étendues entières.For example, a ThresholdPercent of 50 and DebouncePercent of 10 results in debounce boundaries at 45% and 55% of the full-range axis values. Le bouton ne peut pas passer à l’état enfoncé tant que la valeur de l’axe n’atteint pas 55% ou plus, et il ne peut pas passer à l’État libéré tant que la valeur de l’axe n’atteint pas 45% ou en dessous.The button can't transition to the pressed state until the axis value reaches 55% or above, and it can't transition back to the released state until the axis value reaches 45% or below.

Les limites de fenêtre de débond calculées sont ancrées entre 0% et 100%.The computed debounce window boundaries are clamped between 0% and 100%. Par exemple, un seuil de 5% et une fenêtre de débond de 20% entraînent la chute des limites de la fenêtre de débond à 0% et 15%.For example, a threshold of 5% and a debounce window of 20% would result in the debounce window boundaries falling at 0% and 15%. L’état du bouton pour les valeurs d’axe 0% et 100% est toujours signalé comme relâché et appuyé, respectivement, quels que soient le seuil et les valeurs de débond.The button state for axis values of 0% and 100% are always reported as released and pressed, respectively, regardless of the threshold and debounce values.

CommutateurSwitch SwitchIndexSwitchIndex DWORDDWORD OuiYes Index dans le tableau du commutateur RawGameController .Index in the RawGameController switch array.
SwitchPositionSwitchPosition REG_SZREG_SZ OuiYes

Indique la position du commutateur qui fera en sorte que le bouton mappé signale qu’il est enfoncé.Indicates the switch position that will cause the mapped button to report that it's being pressed. Les valeurs de position peuvent être l’une des chaînes suivantes :The position values can be one of these strings:

  • HautUp
  • UpRightUpRight
  • RightRight
  • DownRightDownRight
  • DescendreDown
  • DownLeftDownLeft
  • GaucheLeft
  • UpLeftUpLeft
IncludeAdjacentIncludeAdjacent DWORDDWORD NonNo Indique que les positions de commutateur adjacentes entraîneront également le bouton mappé pour signaler qu’il est enfoncé.Indicates that adjacent switch positions will also cause the mapped button to report that it's being pressed.

Mappage d’axeAxis mapping

Le tableau ci-dessous répertorie les valeurs nécessaires pour mapper un axe :The table below lists the values that are needed to map an axis:

SourceSource Nom de la valeurValue name Type de valeurValue type Nécessaire ?Required? Informations sur la valeurValue info
BoutonButton MaxValueButtonIndexMaxValueButtonIndex DWORDDWORD OuiYes

Index dans le tableau de boutons RawGameController qui est traduit en valeur d’axe unidirectionnelle mappée.Index in the RawGameController button array which gets translated to the mapped unidirectional axis value.

MaxButtonMaxButton AxisValueAxisValue
falseFALSE 0,00.0
TRUETRUE 1.01.0
MinValueButtonIndexMinValueButtonIndex DWORDDWORD NonNo

Indique que l’axe mappé est bidirectionnel.Indicates that the mapped axis is bidirectional. Les valeurs de MaxButton et MinButton sont combinées en un seul axe bidirectionnel, comme indiqué ci-dessous.Values of MaxButton and MinButton are combined into a single bidirectional axis as shown below.

MinButtonMinButton MaxButtonMaxButton AxisValueAxisValue
falseFALSE falseFALSE 0,50.5
falseFALSE trueTRUE 1.01.0
TRUETRUE falseFALSE 0,00.0
TRUETRUE TRUETRUE 0,50.5
AxeAxis AxisIndexAxisIndex DWORDDWORD OuiYes Index dans le tableau de l’axe RawGameController .Index in the RawGameController axis array.
Inverser :Invert DWORDDWORD NonNo Indique que la valeur de l’axe mappé doit être inversée avant d’être retournée.Indicates that the mapped axis value should be inverted before it's returned.
CommutateurSwitch SwitchIndexSwitchIndex DWORDDWORD OuiYes Index dans le tableau du commutateur RawGameController .Index in the RawGameController switch array.
MaxValueSwitchPositionMaxValueSwitchPosition REG_SZREG_SZ OuiYes

Une des chaînes suivantes :One of the following strings:

  • HautUp
  • UpRightUpRight
  • RightRight
  • DownRightDownRight
  • DescendreDown
  • DownLeftDownLeft
  • GaucheLeft
  • UpLeftUpLeft

Elle indique la position du commutateur qui provoque le signalement de la valeur de l’axe mappé comme 1,0.It indicates the position of the switch that causes the mapped axis value to be reported as 1.0. La direction opposée de MaxValueSwitchPosition est traitée comme 0,0.The opposing direction of MaxValueSwitchPosition is treated as 0.0. Par exemple, si MaxValueSwitchPosition est haut, la traduction de la valeur de l’axe est indiquée ci-dessous :For example, if MaxValueSwitchPosition is Up, the axis value translation is shown below:

Position du commutateurSwitch position AxisValueAxisValue
HautUp 1.01.0
CenterCenter 0,50.5
DescendreDown 0,00.0
IncludeAdjacentIncludeAdjacent DWORDDWORD NonNo

Indique que les positions de commutateur adjacentes entraînent également l’état de l’axe mappé sur 1,0.Indicates that adjacent switch positions will also cause the mapped axis to report 1.0. Dans l’exemple ci-dessus, si IncludeAdjacent est défini, la traduction de l’axe est effectuée comme suit :In the above example, if IncludeAdjacent is set, then the axis translation is done as follows:

Position du commutateurSwitch position AxisValueAxisValue
HautUp 1.01.0
UpRightUpRight 1.01.0
UpLeftUpLeft 1.01.0
CenterCenter 0,50.5
DescendreDown 0,00.0
DownRightDownRight 0,00.0
DownLeftDownLeft 0,00.0

Mappage de commutateurSwitch mapping

Les positions de commutateur peuvent être mappées à partir d’un ensemble de boutons dans le tableau de boutons du RawGameController ou à partir d’un index dans le tableau de commutateurs.Switch positions can be mapped either from a set of buttons in the buttons array of the RawGameController or from an index in the switches array. Les positions de commutateur ne peuvent pas être mappées à partir des axes.Switch positions can't be mapped from axes.

SourceSource Nom de la valeurValue name Type de valeurValue type Informations sur la valeurValue info
BoutonButton ButtonCountButtonCount DWORDDWORD 2, 4 ou 82, 4, or 8
SwitchKindSwitchKind REG_SZREG_SZ TwoWay, FourWayou EightWay TwoWay, FourWay, or EightWay
UpButtonIndexUpButtonIndex DWORDDWORD Voir \* valeurs buttonIndexSee \*ButtonIndex values
DownButtonIndexDownButtonIndex DWORDDWORD
LeftButtonIndexLeftButtonIndex DWORDDWORD
RightButtonIndexRightButtonIndex DWORDDWORD
UpRightButtonIndexUpRightButtonIndex DWORDDWORD
DownRightButtonIndexDownRightButtonIndex DWORDDWORD
DownLeftButtonIndexDownLeftButtonIndex DWORDDWORD
UpLeftButtonIndexUpLeftButtonIndex DWORDDWORD
AxeAxis SwitchKindSwitchKind REG_SZREG_SZ TwoWay, FourWayou EightWayTwoWay, FourWay, or EightWay
XAxisIndexXAxisIndex DWORDDWORD YAxisIndex est toujours présent.YAxisIndex is always present. XAxisIndex est présent uniquement lorsque SwitchKind est FourWay ou EightWay.XAxisIndex is only present when SwitchKind is FourWay or EightWay.
YAxisIndexYAxisIndex DWORDDWORD
XDeadZonePercentXDeadZonePercent DWORDDWORD Indiquez la taille de la zone morte autour de la position centrale des axes.Indicate the size of the dead zone around the center position of the axes.
YDeadZonePercentYDeadZonePercent DWORDDWORD
XDebouncePercentXDebouncePercent DWORDDWORD Définissez la taille des fenêtres autour des limites de zone morte supérieure et inférieure, qui sont utilisées pour défaire passer l’état de commutateur signalé.Define the size of the windows around the upper and lower dead zone limits, which are used to de-bounce the reported switch state.
YDebouncePercentYDebouncePercent DWORDDWORD
XInvertXInvert DWORDDWORD Indique que les valeurs de l’axe correspondant doivent être inversées avant que la zone morte et les calculs de la fenêtre de débond soient appliqués.Indicate that the corresponding axis values should be inverted before the dead zone and debounce window calculations are applied.
YInvertYInvert DWORDDWORD
CommutateurSwitch SwitchIndexSwitchIndex DWORDDWORD Index dans le tableau du commutateur RawGameController .Index in the RawGameController switch array.
Inverser :Invert DWORDDWORD Indique que le commutateur signale ses positions dans un sens inverse des aiguilles d’une montre, plutôt que dans le sens des aiguilles d’une montre.Indicates that the switch reports its positions in a counter-clockwise order, rather than the default clockwise order.
PositionBiasPositionBias DWORDDWORD

Décale le point de départ de la façon dont les positions sont signalées par la quantité spécifiée.Shifts the starting point of how positions are reported by the specified amount. PositionBias est toujours compté dans le sens des aiguilles d’une montre à partir du point de départ d’origine et est appliqué avant l’inversion de l’ordre des valeurs.PositionBias is always counted clockwise from the original starting point, and is applied before the order of values is reversed.

Par exemple, un commutateur qui signale des positions commençant par carré dans le sens inverse des aiguilles d’une montre peut être normalisé en définissant l’indicateur d' inversion et en spécifiant un PositionBias de 5 :For example, a switch that reports positions starting with DownRight in counter-clockwise order can be normalized by setting the Invert flag and specifying a PositionBias of 5:

PositionPosition Valeur signaléeReported value Après PositionBias et inverser les indicateursAfter PositionBias and Invert flags
DownRightDownRight 00 33
RightRight 11 22
UpRightUpRight 22 11
HautUp 33 00
UpLeftUpLeft 44 77
GaucheLeft 55 66
DownLeftDownLeft 66 55
DescendreDown 77 44

* Valeurs ButtonIndex*ButtonIndex values

*Index des valeurs ButtonIndex dans le tableau de boutons du RawGameController:*ButtonIndex values index into the RawGameController's button array:

ButtonCountButtonCount SwitchKindSwitchKind RequiredMappingsRequiredMappings
22 BidirectionnelTwoWay
  • UpButtonIndexUpButtonIndex
  • DownButtonIndexDownButtonIndex
44 FourWayFourWay
  • UpButtonIndexUpButtonIndex
  • DownButtonIndexDownButtonIndex
  • LeftButtonIndexLeftButtonIndex
  • RightButtonIndexRightButtonIndex
44 EightWayEightWay
  • UpButtonIndexUpButtonIndex
  • DownButtonIndexDownButtonIndex
  • LeftButtonIndexLeftButtonIndex
  • RightButtonIndexRightButtonIndex
88 EightWayEightWay
  • UpButtonIndexUpButtonIndex
  • DownButtonIndexDownButtonIndex
  • LeftButtonIndexLeftButtonIndex
  • RightButtonIndexRightButtonIndex
  • UpRightButtonIndexUpRightButtonIndex
  • DownRightButtonIndexDownRightButtonIndex
  • DownLeftButtonIndexDownLeftButtonIndex
  • UpLeftButtonIndexUpLeftButtonIndex

Mappage des propriétésProperties mapping

Il s’agit de valeurs de mappage statiques pour différents types de mappage.These are static mapping values for different mapping types.

MappageMapping Nom de la valeurValue name Type de valeurValue type Informations sur la valeurValue info
RacingWheelRacingWheel MaxWheelAngleMaxWheelAngle DWORDDWORD Indique l’angle de roue physique maximal pris en charge par la roue en une seule direction.Indicates the maximum physical wheel angle supported by the wheel in a single direction. Par exemple, une roue avec une rotation possible de-90 degrés à 90 degrés spécifie 90.For example, a wheel with a possible rotation of -90 degrees to 90 degrees would specify 90.

ÉtiquettesLabels

Les étiquettes doivent être présentes sous la clé des étiquettes sous la racine de l’appareil.Labels should be present under the Labels key under the device root. Les étiquettes peuvent avoir 3 sous-clés : boutons, axeset commutateurs.Labels can have 3 subkeys: Buttons, Axes, and Switches.

Libellé des boutonsButton labels

La touche boutons mappe chaque position de bouton du tableau de boutons de RawGameControllersur une chaîne.The Buttons key maps each of the button positions in the RawGameController's buttons array to a string. Chaque chaîne est mappée en interne à la valeur d’énumération GameControllerButtonLabel correspondante.Each string is mapped internally to the corresponding GameControllerButtonLabel enum value. Par exemple, si un boîtier de commande comporte dix boutons et que l’ordre dans lequel le RawGameController analyse les boutons et les affiche dans le rapport boutons, cela se présente comme suit :For example, if a gamepad has ten buttons and the order in which the RawGameController parses out the buttons and presents them in the buttons report is like this:

Menu,               // Index 0
View,               // Index 1
LeftStickButton,    // Index 2
RightStickButton,   // Index 3
LetterA,            // Index 4
LetterB,            // Index 5
LetterX,            // Index 6
LetterY,            // Index 7
LeftBumper,         // Index 8
RightBumper         // Index 9

Les étiquettes doivent apparaître dans cet ordre sous la clé Buttons :The labels should appear in this order under the Buttons key:

NameName Valeur (type : REG_SZ)Value (type: REG_SZ)
Button0Button0 MenuMenu
Button1Button1 AffichageView
Button2Button2 LeftStickButtonLeftStickButton
Button3Button3 RightStickButtonRightStickButton
Button4Button4 LettreLetterA
Button5Button5 LetterBLetterB
Button6Button6 LetterXLetterX
Button7Button7 LettreLetterY
Button8Button8 LeftBumperLeftBumper
Button9Button9 RightBumperRightBumper

Étiquettes de l’axeAxis labels

La touche axes mappe chaque position d’axe dans le tableau d’axes de RawGameControllerà l’une des étiquettes listées dans l' énumération GameControllerButtonLabel , comme les étiquettes de bouton.The Axes key will map each of the axis positions in the RawGameController's axis array to one of the labels listed in GameControllerButtonLabel Enum just like the button labels. Consultez l’exemple dans étiquettes de bouton.See the example in Button labels.

Changer les étiquettesSwitch labels

La touche commutateurs mappe les positions aux étiquettes.The Switches key maps switch positions to labels. Les valeurs respectent la Convention d’affectation de noms suivante : pour étiqueter la position d’un commutateur, dont l’index est x dans le tableau de commutateurs de RawGameController, ajoutez ces valeurs sous la sous-clé switches :The values follow this naming convention: to label a position of a switch, whose index is x in the RawGameController's switch array, add these values under the Switches subkey:

  • SwitchxUpSwitchxUp
  • SwitchxUpRightSwitchxUpRight
  • SwitchxRightSwitchxRight
  • SwitchxDownRightSwitchxDownRight
  • SwitchxDownSwitchxDown
  • SwitchxDownLeftSwitchxDownLeft
  • SwitchxUpLeftSwitchxUpLeft
  • SwitchxLeftSwitchxLeft

Le tableau suivant présente un exemple de jeu d’étiquettes pour les positions de commutateur d’un commutateur à 4 voies qui apparaît à l’index 0 dans le RawGameController:The following table shows an example set of labels for switch positions of a 4-way switch which shows up at index 0 in the RawGameController:

NameName Valeur (type : REG_SZ)Value (type: REG_SZ)
Switch0UpSwitch0Up XboxUpXboxUp
Switch0RightSwitch0Right XboxRightXboxRight
Switch0DownSwitch0Down XboxDownXboxDown
Switch0LeftSwitch0Left XboxLeftXboxLeft

Exemple de fichier de RegistreExample registry file

Pour illustrer la façon dont tous ces mappages et valeurs sont réunis, voici un exemple de fichier de Registre pour un RacingWheelgénérique :To show how all of these mappings and values come together, here is an example registry file for a generic RacingWheel:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004]
"Description" = "Example Wheel Device"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\Labels\Buttons]
"Button0" = "LetterA"
"Button1" = "LetterB"
"Button2" = "LetterX"
"Button3" = "LetterY"
"Button6" = "Menu"
"Button7" = "View"
"Button8" = "RightStickButton"
"Button9" = "LeftStickButton"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\Labels\Switches]
"Switch0Down" = "Down"
"Switch0Left" = "Left"
"Switch0Right" = "Right"
"Switch0Up" = "Up"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel]
"MaxWheelAngle" = dword:000001c2

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\Brake]
"AxisIndex" = dword:00000002
"Invert" = dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\Button1]
"ButtonIndex" = dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\Button2]
"ButtonIndex" = dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\Button3]
"ButtonIndex" = dword:00000002

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\Button4]
"ButtonIndex" = dword:00000003

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\Button5]
"ButtonIndex" = dword:00000009

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\Button6]
"ButtonIndex" = dword:00000008

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\Button7]
"ButtonIndex" = dword:00000007

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\Button8]
"ButtonIndex" = dword:00000006

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\Clutch]
"AxisIndex" = dword:00000003
"Invert" = dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\DPadDown]
"IncludeAdjacent" = dword:00000001
"SwitchIndex" = dword:00000000
"SwitchPosition" = "Down"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\DPadLeft]
"IncludeAdjacent" = dword:00000001
"SwitchIndex" = dword:00000000
"SwitchPosition" = "Left"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\DPadRight]
"IncludeAdjacent" = dword:00000001
"SwitchIndex" = dword:00000000
"SwitchPosition" = "Right"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\DPadUp]
"IncludeAdjacent" = dword:00000001
"SwitchIndex" = dword:00000000
"SwitchPosition" = "Up"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\FifthGear]
"ButtonIndex" = dword:00000010

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\FirstGear]
"ButtonIndex" = dword:0000000c

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\FourthGear]
"ButtonIndex" = dword:0000000f

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\NextGear]
"ButtonIndex" = dword:00000004

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\PreviousGear]
"ButtonIndex" = dword:00000005

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\ReverseGear]
"ButtonIndex" = dword:0000000b

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\SecondGear]
"ButtonIndex" = dword:0000000d

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\SixthGear]
"ButtonIndex" = dword:00000011

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\ThirdGear]
"ButtonIndex" = dword:0000000e

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\Throttle]
"AxisIndex" = dword:00000001
"Invert" = dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\1234567800010004\RacingWheel\Wheel]
"AxisIndex" = dword:00000000
"Invert" = dword:00000000

Voir aussiSee also