Datos del registro para dispositivos de juegoRegistry data for game controllers

Nota

Este tema está destinado a los fabricantes de controladores de juegos compatibles con Windows 10 y no se aplican a la mayoría de los desarrolladores.This topic is meant for manufacturers of Windows 10-compatible game controllers, and doesn't apply to the majority of developers.

El espacio de nombres Windows. Gaming. Input permite a los fabricantes de hardware independientes (IHV) agregar datos al registro del equipo, lo que permite que los dispositivos aparezcan como controladores de juegos, RacingWheels, ArcadeSticks, FlightSticksy UINavigationControllers , según corresponda.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. Todos los IHV deben agregar estos datos para sus controladores compatibles.All IHVs should add this data for their compatible controllers. Al hacerlo, todos los juegos para UWP (y cualquier juego de escritorio que use la API de WinRT) podrán admitir el dispositivo de juego.By doing this, all UWP games (and any desktop games that use the WinRT API) will be able to support your game controller.

Esquema de asignaciónMapping scheme

Las asignaciones de un dispositivo con el identificador de proveedor (VID) vvvv, el ID. de producto (PID) pppp, la página de uso UUUUy el ID. de uso xxxxse leerán desde esta ubicación en el registro: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

En la tabla siguiente se explican los valores esperados en la ubicación raíz del dispositivo:The table below explains the expected values under the device root location:

NombreName TipoType ¿Necesario?Required? InformaciónInfo
DisabledDisabled DWORDDWORD NoNo

Indica que se debe deshabilitar este dispositivo en particular.Indicates that this particular device should be disabled.

  • 0: el dispositivo no está deshabilitado.0: Device is not disabled.
  • 1: el dispositivo está deshabilitado.1: Device is disabled.
DescripciónDescription REG_SZREG_SZ NoNo Breve descripción del dispositivo.A short description of the device.

El instalador del dispositivo debe agregar estos datos al registro (ya sea a través del programa de instalación o un archivo INF).Your device installer should add this data to the registry (either via setup or an INF file).

Las subclaves de la ubicación raíz del dispositivo se detallan en las secciones siguientes.Subkeys under the device root location are detailed in the following sections.

Controlador para juegosGamepad

En la tabla siguiente se enumeran las subclaves obligatorias y opcionales en la subclave del controlador de juegos :The table below lists the required and optional subkeys under the Gamepad subkey:

SubclaveSubkey ¿Necesario?Required? InformaciónInfo
MenúMenu Yes Consulte asignación de botonesSee Button mapping
VerView Yes
AA Yes
BB Yes
XX Yes
YY Yes
LeftShoulderLeftShoulder Yes
RightShoulderRightShoulder Yes
LeftThumbstickButtonLeftThumbstickButton Yes
RightThumbstickButtonRightThumbstickButton Yes
DPadUpDPadUp Yes
DPadDownDPadDown Yes
DPadLeftDPadLeft Yes
DPadRightDPadRight Yes
Paddle1Paddle1 NoNo
Paddle2Paddle2 NoNo
Paddle3Paddle3 NoNo
Paddle4Paddle4 NoNo
LeftTriggerLeftTrigger Yes Consulte asignación de ejeSee Axis mapping
RightTriggerRightTrigger Yes
LeftThumbstickXLeftThumbstickX Yes
LeftThumbstickYLeftThumbstickY Yes
RightThumbstickXRightThumbstickX Yes
RightThumbstickYRightThumbstickY Yes

Nota

Si agrega el dispositivo de juego como un controlador de juegoscompatible, es muy recomendable que también lo agregue como UINavigationControllercompatible.If you add your game controller as a supported Gamepad, we highly recommend that you also add it as a supported UINavigationController.

RacingWheelRacingWheel

En la tabla siguiente se enumeran las subclaves obligatorias y opcionales en la subclave RacingWheel :The table below lists the required and optional subkeys under the RacingWheel subkey:

SubclaveSubkey ¿Necesario?Required? InformaciónInfo
PreviousGearPreviousGear Yes Consulte asignación de botonesSee Button mapping
NextGearNextGear Yes
DPadUpDPadUp NoNo
DPadDownDPadDown NoNo
DPadLeftDPadLeft NoNo
DPadRightDPadRight NoNo
Button1Button1 NoNo
Button2Button2 NoNo
Button3Button3 NoNo
Button4Button4 NoNo
Button5Button5 NoNo
Button6Button6 NoNo
Button7Button7 NoNo
Button8Button8 NoNo
Button9Button9 NoNo
Button10Button10 NoNo
Button11Button11 NoNo
Button12Button12 NoNo
Button13Button13 NoNo
Button14Button14 NoNo
Button15Button15 NoNo
Button16Button16 NoNo
FirstGearFirstGear NoNo
SecondGearSecondGear NoNo
ThirdGearThirdGear NoNo
FourthGearFourthGear NoNo
FifthGearFifthGear NoNo
SixthGearSixthGear NoNo
SeventhGearSeventhGear NoNo
ReverseGearReverseGear NoNo
RuedaWheel Yes Consulte asignación de ejeSee Axis mapping
LimitaciónThrottle Yes
ResistenciaBrake Yes
EmbragueClutch NoNo
HandbrakeHandbrake NoNo
MaxWheelAngleMaxWheelAngle Yes Ver la asignación de propiedadesSee Properties mapping

ArcadeStickArcadeStick

En la tabla siguiente se enumeran las subclaves obligatorias y opcionales en la subclave ArcadeStick :The table below lists the required and optional subkeys under the ArcadeStick subkey:

SubclaveSubkey ¿Necesario?Required? InformaciónInfo
Acción 1Action 1 Yes Consulte asignación de botonesSee Button mapping
Action2Action2 Yes
Action3Action3 Yes
Action4Action4 Yes
Action5Action5 Yes
Action6Action6 Yes
Special1Special1 Yes
Special2Special2 Yes
StickUpStickUp Yes
StickDownStickDown Yes
StickLeftStickLeft Yes
StickRightStickRight Yes

FlightStickFlightStick

En la tabla siguiente se enumeran las subclaves obligatorias y opcionales en la subclave FlightStick :The table below lists the required and optional subkeys under the FlightStick subkey:

SubclaveSubkey ¿Necesario?Required? InformaciónInfo
FirePrimaryFirePrimary Yes Consulte asignación de botonesSee Button mapping
FireSecondaryFireSecondary Yes
VolverRoll Yes Consulte asignación de ejeSee Axis mapping
InclinaciónPitch Yes
EjeYaw Yes
LimitaciónThrottle Yes
HatSwitchHatSwitch Yes Consulte asignación de conmutadoresSee Switch mapping

UINavigationUINavigation

En la tabla siguiente se enumeran las subclaves obligatorias y opcionales en la subclave UINavigation :The table below lists the required and optional subkeys under UINavigation subkey:

SubclaveSubkey ¿Necesario?Required? InformaciónInfo
MenúMenu Yes Consulte asignación de botonesSee Button mapping
VerView Yes
AceptarAccept Yes
CancelarCancel Yes
PrimaryUpPrimaryUp Yes
PrimaryDownPrimaryDown Yes
PrimaryLeftPrimaryLeft Yes
PrimaryRightPrimaryRight Yes
Context1Context1 NoNo
Context2Context2 NoNo
Context3Context3 NoNo
Context4Context4 NoNo
RePágPageUp NoNo
AvPágPageDown NoNo
PageLeftPageLeft NoNo
PageRightPageRight NoNo
ScrollUpScrollUp NoNo
ScrollDownScrollDown NoNo
ScrollLeftScrollLeft NoNo
ScrollRightScrollRight NoNo
SecondaryUpSecondaryUp NoNo
SecondaryDownSecondaryDown NoNo
SecondaryLeftSecondaryLeft NoNo
SecondaryRightSecondaryRight NoNo

Para obtener más información sobre los controladores de navegación de la interfaz de usuario y los comandos anteriores, vea controlador de navegación de IU.For more information about UI navigation controllers and the above commands, see UI navigation controller.

ClavesKeys

En las siguientes secciones se explica el contenido de cada una de las subclaves en las claves de controlador de juegos, RacingWheel, ArcadeStick, FlightSticky UINavigation .The following sections explain the contents of each of the subkeys under the Gamepad, RacingWheel, ArcadeStick, FlightStick, and UINavigation keys.

Asignación de botonesButton mapping

En la tabla siguiente se enumeran los valores que se necesitan para asignar un botón.The table below lists the values that are needed to map a button. Por ejemplo, si se presiona DPadUp en el dispositivo de juego, la asignación de DPadUp debe contener el valor ButtonIndex (elorigen es Button).For example, if pressing DPadUp on the game controller, the mapping for DPadUp should contain the ButtonIndex value (Source is Button). Si DPadUp debe asignarse desde una posición del conmutador, la asignación de DPadUp debe contener los valores SwitchIndex y SwitchPosition (elorigen es 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 Nombre del valorValue name Tipo de valorValue type ¿Necesario?Required? Información del valorValue info
BotónButton ButtonIndexButtonIndex DWORDDWORD Yes Índice en la matriz de botones de RawGameController .Index in the RawGameController button array.
EjeAxis AxisIndexAxisIndex DWORDDWORD Yes Índice de la matriz del eje RawGameController .Index in the RawGameController axis array.
InvertirInvert DWORDDWORD NoNo Indica que el valor del eje debe invertirse antes de que se apliquen los factores de porcentaje de umbral y DebouncePercent .Indicates that the axis value should be inverted before the Threshold Percent and DebouncePercent factors are applied.
ThresholdPercentThresholdPercent DWORDDWORD Yes Indica la posición del eje en la que el valor del botón asignado realiza la transición entre los Estados presionado y liberado.Indicates the axis position at which the mapped button value transitions between the pressed and released states. El intervalo válido de valores es de 0 a 100.The valid range of values is 0 to 100. Se considera que el botón está presionado si el valor del eje es mayor o igual que este valor.The button is considered pressed if the axis value is greater than or equal to this value.
DebouncePercentDebouncePercent DWORDDWORD Yes

Define el tamaño de una ventana alrededor del valor de ThresholdPercent , que se usa para desbotar el estado del botón indicado.Defines the size of a window around the ThresholdPercent value, which is used to debounce the reported button state. El intervalo válido de valores es de 0 a 100.The valid range of values is 0 to 100. Las transiciones de estado del botón solo se pueden producir cuando el valor del eje cruza los límites superior e inferior de la ventana de desbote.Button state transitions can only occur when the axis value crosses the upper or lower boundaries of the debounce window. Por ejemplo, un ThresholdPercent de 50 y DebouncePercent de 10 produce límites de desbote en el 45% y el 55% de los valores del eje de intervalo completo.For example, a ThresholdPercent of 50 and DebouncePercent of 10 results in debounce boundaries at 45% and 55% of the full-range axis values. El botón no puede pasar al estado presionado hasta que el valor del eje alcanza el 55% o superior, y no puede volver al estado liberado hasta que el valor del eje alcanza el 45% o inferior.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.

Los límites de la ventana de desbote calculada están fijados entre 0% y 100%.The computed debounce window boundaries are clamped between 0% and 100%. Por ejemplo, un umbral de un 5% y una ventana de Debounce del 20% daría como resultado los límites de la ventana de desbote en el 0% y el 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%. El estado del botón para los valores de eje de 0% y 100% siempre se indica como liberado y presionado, respectivamente, independientemente de los valores de umbral y Debounce.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.

ConmutadorSwitch SwitchIndexSwitchIndex DWORDDWORD Yes Índice en la matriz del modificador RawGameController .Index in the RawGameController switch array.
SwitchPositionSwitchPosition REG_SZREG_SZ Yes

Indica la posición del modificador que hará que el botón asignado informe de que se presiona.Indicates the switch position that will cause the mapped button to report that it's being pressed. Los valores de posición pueden ser una de estas cadenas:The position values can be one of these strings:

  • ArribaUp
  • UpRightUpRight
  • RightRight
  • DownRightDownRight
  • BajarDown
  • DownLeftDownLeft
  • LeftLeft
  • UpLeftUpLeft
IncludeAdjacentIncludeAdjacent DWORDDWORD NoNo Indica que las posiciones adyacentes del conmutador también harán que el botón asignado informe de que se presiona.Indicates that adjacent switch positions will also cause the mapped button to report that it's being pressed.

Asignación de ejeAxis mapping

En la tabla siguiente se enumeran los valores que se necesitan para asignar un eje:The table below lists the values that are needed to map an axis:

SourceSource Nombre del valorValue name Tipo de valorValue type ¿Necesario?Required? Información del valorValue info
BotónButton MaxValueButtonIndexMaxValueButtonIndex DWORDDWORD Yes

Índice en la matriz de botones RawGameController que se convierte en el valor del eje unidireccional asignado.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 NoNo

Indica que el eje asignado es bidireccional.Indicates that the mapped axis is bidirectional. Los valores de MaxButton y MinButton se combinan en un único eje bidireccional, como se muestra a continuación.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
EjeAxis AxisIndexAxisIndex DWORDDWORD Yes Índice de la matriz del eje RawGameController .Index in the RawGameController axis array.
InvertirInvert DWORDDWORD NoNo Indica que se debe invertir el valor del eje asignado antes de que se devuelva.Indicates that the mapped axis value should be inverted before it's returned.
ConmutadorSwitch SwitchIndexSwitchIndex DWORDDWORD Yes Índice en la matriz del modificador RawGameController .Index in the RawGameController switch array.
MaxValueSwitchPositionMaxValueSwitchPosition REG_SZREG_SZ Yes

Una de las cadenas siguientes:One of the following strings:

  • ArribaUp
  • UpRightUpRight
  • RightRight
  • DownRightDownRight
  • BajarDown
  • DownLeftDownLeft
  • LeftLeft
  • UpLeftUpLeft

Indica la posición del modificador que hace que el valor del eje asignado se notifique como 1,0.It indicates the position of the switch that causes the mapped axis value to be reported as 1.0. La dirección opuesta de MaxValueSwitchPosition se trata como 0,0.The opposing direction of MaxValueSwitchPosition is treated as 0.0. Por ejemplo, si MaxValueSwitchPosition está activo, la traducción del valor del eje se muestra a continuación:For example, if MaxValueSwitchPosition is Up, the axis value translation is shown below:

Posición del conmutadorSwitch position AxisValueAxisValue
ArribaUp 1.01.0
CenterCenter 0,50.5
BajarDown 0,00.0
IncludeAdjacentIncludeAdjacent DWORDDWORD NoNo

Indica que las posiciones adyacentes del conmutador también harán que el eje asignado informe de 1,0.Indicates that adjacent switch positions will also cause the mapped axis to report 1.0. En el ejemplo anterior, si se establece IncludeAdjacent , la traducción del eje se realiza de la siguiente manera:In the above example, if IncludeAdjacent is set, then the axis translation is done as follows:

Posición del conmutadorSwitch position AxisValueAxisValue
ArribaUp 1.01.0
UpRightUpRight 1.01.0
UpLeftUpLeft 1.01.0
CenterCenter 0,50.5
BajarDown 0,00.0
DownRightDownRight 0,00.0
DownLeftDownLeft 0,00.0

Asignación de conmutadoresSwitch mapping

Las posiciones de los conmutadores se pueden asignar desde un conjunto de botones de la matriz de botones de RawGameController o desde un índice de la matriz de modificadores.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. Las posiciones de los conmutadores no se pueden asignar desde ejes.Switch positions can't be mapped from axes.

SourceSource Nombre del valorValue name Tipo de valorValue type Información del valorValue info
BotónButton ButtonCountButtonCount DWORDDWORD 2, 4 u 82, 4, or 8
SwitchKindSwitchKind REG_SZREG_SZ TwoWay, FourWayo EightWay TwoWay, FourWay, or EightWay
UpButtonIndexUpButtonIndex DWORDDWORD Consulte \* valores de ButtonIndexSee \*ButtonIndex values
DownButtonIndexDownButtonIndex DWORDDWORD
LeftButtonIndexLeftButtonIndex DWORDDWORD
RightButtonIndexRightButtonIndex DWORDDWORD
UpRightButtonIndexUpRightButtonIndex DWORDDWORD
DownRightButtonIndexDownRightButtonIndex DWORDDWORD
DownLeftButtonIndexDownLeftButtonIndex DWORDDWORD
UpLeftButtonIndexUpLeftButtonIndex DWORDDWORD
EjeAxis SwitchKindSwitchKind REG_SZREG_SZ TwoWay, FourWayo EightWayTwoWay, FourWay, or EightWay
XAxisIndexXAxisIndex DWORDDWORD YAxisIndex siempre está presente.YAxisIndex is always present. XAxisIndex solo está presente cuando SwitchKind es FourWay o EightWay.XAxisIndex is only present when SwitchKind is FourWay or EightWay.
YAxisIndexYAxisIndex DWORDDWORD
XDeadZonePercentXDeadZonePercent DWORDDWORD Indica el tamaño de la zona muerta en torno a la posición central de los ejes.Indicate the size of the dead zone around the center position of the axes.
YDeadZonePercentYDeadZonePercent DWORDDWORD
XDebouncePercentXDebouncePercent DWORDDWORD Defina el tamaño de las ventanas en torno a los límites superior e inferior de la zona muerta, que se usan para desbotar el estado del conmutador indicado.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 Indica que los valores de eje correspondientes deben invertirse antes de que se apliquen los cálculos de las ventanas de zona muerta y de desbote.Indicate that the corresponding axis values should be inverted before the dead zone and debounce window calculations are applied.
YInvertYInvert DWORDDWORD
ConmutadorSwitch SwitchIndexSwitchIndex DWORDDWORD Índice en la matriz del modificador RawGameController .Index in the RawGameController switch array.
InvertirInvert DWORDDWORD Indica que el modificador informa de sus posiciones en un orden en el sentido contrario a las agujas del reloj, en lugar del orden en el sentido de las agujas del reloj.Indicates that the switch reports its positions in a counter-clockwise order, rather than the default clockwise order.
PositionBiasPositionBias DWORDDWORD

Desplaza el punto inicial de cómo se informan las posiciones en la cantidad especificada.Shifts the starting point of how positions are reported by the specified amount. PositionBias siempre se cuenta en el sentido de las agujas del reloj desde el punto inicial original y se aplica antes de que se invierta el orden de los valores.PositionBias is always counted clockwise from the original starting point, and is applied before the order of values is reversed.

Por ejemplo, un modificador que indica posiciones que se inician con DownRight en el orden en el sentido contrario a las agujas del reloj se puede normalizar estableciendo la marca de inversión y especificando un valor de 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:

PosiciónPosition Valor indicadoReported value Después de PositionBias e invertir marcasAfter PositionBias and Invert flags
DownRightDownRight 00 33
RightRight 11 22
UpRightUpRight 22 11
ArribaUp 33 00
UpLeftUpLeft 44 77
LeftLeft 55 66
DownLeftDownLeft 66 55
BajarDown 77 44

* Valores de ButtonIndex*ButtonIndex values

*ButtonIndex valores de índice en la matriz de botones del RawGameController:*ButtonIndex values index into the RawGameController's button array:

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

Asignación de propiedadesProperties mapping

Se trata de valores de asignación estáticos para diferentes tipos de asignación.These are static mapping values for different mapping types.

AsignaciónMapping Nombre del valorValue name Tipo de valorValue type Información del valorValue info
RacingWheelRacingWheel MaxWheelAngleMaxWheelAngle DWORDDWORD Indica el ángulo de rueda física máximo admitido por la rueda en una sola dirección.Indicates the maximum physical wheel angle supported by the wheel in a single direction. Por ejemplo, una rueda con un posible giro de-90 grados a 90 grados especificaría 90.For example, a wheel with a possible rotation of -90 degrees to 90 degrees would specify 90.

EtiquetasLabels

Las etiquetas deben estar presentes en la clave etiquetas bajo la raíz del dispositivo.Labels should be present under the Labels key under the device root. Las etiquetas pueden tener 3 subclaves: botones, ejesy Modificadores.Labels can have 3 subkeys: Buttons, Axes, and Switches.

Etiquetas de los botonesButton labels

La tecla botones asigna a una cadena cada una de las posiciones de los botones de la matriz de botones de RawGameController.The Buttons key maps each of the button positions in the RawGameController's buttons array to a string. Cada cadena se asigna internamente al valor de enumeración GameControllerButtonLabel correspondiente.Each string is mapped internally to the corresponding GameControllerButtonLabel enum value. Por ejemplo, si un controlador de juegos tiene diez botones y el orden en el que el RawGameController analiza los botones y los presenta en el informe de botones es como el siguiente: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

Las etiquetas deben aparecer en este orden bajo la tecla botones :The labels should appear in this order under the Buttons key:

NOMBREName Valor (tipo: REG_SZ)Value (type: REG_SZ)
Button0Button0 MenúMenu
Button1Button1 VerView
Button2Button2 LeftStickButtonLeftStickButton
Button3Button3 RightStickButtonRightStickButton
Button4Button4 Carta aLetterA
Button5Button5 LetterBLetterB
Button6Button6 LetterXLetterX
Button7Button7 CartaLetterY
Button8Button8 LeftBumperLeftBumper
Button9Button9 RightBumperRightBumper

Etiquetas de ejeAxis labels

La clave de los ejes asignará cada una de las posiciones del eje de la matriz de ejes de RawGameControllera una de las etiquetas enumeradas en la enumeración GameControllerButtonLabel , al igual que las etiquetas de botón.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. Vea el ejemplo en etiquetas de botón.See the example in Button labels.

Cambiar etiquetasSwitch labels

Los Modificadores de las asignaciones de teclas cambian de posición a etiquetas.The Switches key maps switch positions to labels. Los valores siguen esta Convención de nomenclatura: para etiquetar una posición de un modificador, cuyo índice es x en la matriz de modificadores de RawGameController, agregue estos valores en la subclave 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

En la tabla siguiente se muestra un ejemplo de un conjunto de etiquetas para las posiciones de los conmutadores de un conmutador de 4 vías que se muestra en el índice 0 de 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:

NOMBREName Valor (tipo: REG_SZ)Value (type: REG_SZ)
Switch0UpSwitch0Up XboxUpXboxUp
Switch0RightSwitch0Right XboxRightXboxRight
Switch0DownSwitch0Down XboxDownXboxDown
Switch0LeftSwitch0Left XboxLeftXboxLeft

Archivo de registro de ejemploExample registry file

Para mostrar cómo se reúnen todas estas asignaciones y valores, este es un archivo de registro de ejemplo para un RacingWheelgenérico: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

Consulte tambiénSee also