Данные реестра для игровых устройств управленияRegistry data for game controllers

Примечание

Данный раздел предназначен для производителей игровых устройств, совместимых с Windows 10, и не применим для большинства разработчиков.This topic is meant for manufacturers of Windows 10-compatible game controllers, and doesn't apply to the majority of developers.

Пространство имен Windows.Gaming.Input позволяет независимым поставщикам оборудования (IHV) добавлять данные в реестр компьютера, чтобы их устройства отображались как элементы Gamepad, RacingWheel, ArcadeStick, FlightStick и UINavigationController соответствующим образом.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. Все независимые поставщики оборудования должны добавить эти данные для совместимых контроллеров.All IHVs should add this data for their compatible controllers. Таким образом все игры UWP (и любые классические игры, которые используют API WinRT) смогут поддерживать ваше игровое устройство управления.By doing this, all UWP games (and any desktop games that use the WinRT API) will be able to support your game controller.

Схема сопоставленияMapping scheme

Сопоставления для устройств с идентификатором поставщика (VID) VVVV, кодом продукта (PID) PPPP, страницей использования UUUU и идентификатором использования XXXX будут извлечены из этого расположения в реестре: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

В таблице ниже приведены ожидаемые значения в корневой папке устройства:The table below explains the expected values under the device root location:

ИмяName ТипType Обязательно?Required? СведенияInfo
ВыключеноDisabled DWORDDWORD НетNo

Указывает, что конкретное устройство должно быть отключено.Indicates that this particular device should be disabled.

  • 0: устройство не отключено.0: Device is not disabled.
  • 1: устройство отключено.1: Device is disabled.
ОписаниеDescription REG_SZREG_SZ НетNo Краткое описание устройства.A short description of the device.

Установщик устройства должен добавить эти данные в реестр (с помощью программы установки или INF-файла).Your device installer should add this data to the registry (either via setup or an INF file).

Подразделы корневой папки устройства подробно описаны в следующих разделах.Subkeys under the device root location are detailed in the following sections.

ГеймпадGamepad

В таблице ниже приведены обязательные и необязательные подразделы в разделе Gamepad:The table below lists the required and optional subkeys under the Gamepad subkey:

ПодразделSubkey Необходим?Required? СведенияInfo
МенюMenu ДаYes См. раздел Сопоставление кнопок.See Button mapping
ПредставлениеView ДаYes
ОбъектA ДаYes
BB ДаYes
XX ДаYes
ДаY ДаYes
LeftShoulderLeftShoulder ДаYes
RightShoulderRightShoulder ДаYes
LeftThumbstickButtonLeftThumbstickButton ДаYes
RightThumbstickButtonRightThumbstickButton ДаYes
DPadUpDPadUp ДаYes
DPadDownDPadDown ДаYes
DPadLeftDPadLeft ДаYes
DPadRightDPadRight ДаYes
Paddle1Paddle1 НетNo
Paddle2Paddle2 НетNo
Paddle3Paddle3 НетNo
Paddle4Paddle4 НетNo
LeftTriggerLeftTrigger ДаYes См. разделе Сопоставление осейSee Axis mapping
RightTriggerRightTrigger ДаYes
LeftThumbstickXLeftThumbstickX ДаYes
LeftThumbstickYLeftThumbstickY ДаYes
RightThumbstickXRightThumbstickX ДаYes
RightThumbstickYRightThumbstickY ДаYes

Примечание

Если вы добавляете игровое устройство как поддерживаемый Gamepad, настоятельно рекомендуется также добавить его как поддерживаемый UINavigationController.If you add your game controller as a supported Gamepad, we highly recommend that you also add it as a supported UINavigationController.

RacingWheelRacingWheel

В таблице ниже приведены обязательные и необязательные подразделы в разделе RacingWheel:The table below lists the required and optional subkeys under the RacingWheel subkey:

ПодразделSubkey Необходим?Required? СведенияInfo
PreviousGearPreviousGear ДаYes См. раздел Сопоставление кнопок.See Button mapping
NextGearNextGear ДаYes
DPadUpDPadUp НетNo
DPadDownDPadDown НетNo
DPadLeftDPadLeft НетNo
DPadRightDPadRight НетNo
Button1Button1 НетNo
Button2Button2 НетNo
Button3Button3 НетNo
Button4Button4 НетNo
Button5Button5 НетNo
Button6Button6 НетNo
Button7Button7 НетNo
Button8Button8 НетNo
Button9Button9 НетNo
Button10Button10 НетNo
Button11Button11 НетNo
Button12Button12 НетNo
Button13Button13 НетNo
Button14Button14 НетNo
Button15Button15 НетNo
Button16Button16 НетNo
FirstGearFirstGear НетNo
SecondGearSecondGear НетNo
ThirdGearThirdGear НетNo
FourthGearFourthGear НетNo
FifthGearFifthGear НетNo
SixthGearSixthGear НетNo
SeventhGearSeventhGear НетNo
ReverseGearReverseGear НетNo
WheelWheel ДаYes См. разделе Сопоставление осейSee Axis mapping
РегулированиеThrottle ДаYes
BrakeBrake ДаYes
ClutchClutch НетNo
HandbrakeHandbrake НетNo
MaxWheelAngleMaxWheelAngle ДаYes См. раздел Сопоставление свойствSee Properties mapping

ArcadeStickArcadeStick

В таблице ниже приведены обязательные и необязательные подразделы в разделе ArcadeStick:The table below lists the required and optional subkeys under the ArcadeStick subkey:

ПодразделSubkey Необходим?Required? СведенияInfo
Action1Action 1 ДаYes См. раздел Сопоставление кнопок.See 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

В таблице ниже приведены обязательные и необязательные подразделы в разделе FlightStick:The table below lists the required and optional subkeys under the FlightStick subkey:

ПодразделSubkey Необходим?Required? СведенияInfo
FirePrimaryFirePrimary ДаYes См. раздел Сопоставление кнопок.See Button mapping
FireSecondaryFireSecondary ДаYes
RollRoll ДаYes См. разделе Сопоставление осейSee Axis mapping
Высота тонаPitch ДаYes
YawYaw ДаYes
РегулированиеThrottle ДаYes
HatSwitchHatSwitch ДаYes См. раздел Сопоставление переключателейSee Switch mapping

UINavigationUINavigation

В таблице ниже приведены обязательные и необязательные подразделы в разделе UINavigation:The table below lists the required and optional subkeys under UINavigation subkey:

ПодразделSubkey Необходим?Required? СведенияInfo
МенюMenu ДаYes См. раздел Сопоставление кнопок.See Button mapping
ПредставлениеView ДаYes
ПринятьAccept ДаYes
ОтменитьCancel ДаYes
PrimaryUpPrimaryUp ДаYes
PrimaryDownPrimaryDown ДаYes
PrimaryLeftPrimaryLeft ДаYes
PrimaryRightPrimaryRight ДаYes
Context1Context1 НетNo
Context2Context2 НетNo
Context3Context3 НетNo
Context4Context4 НетNo
PAGE UPPageUp НетNo
PAGE DOWNPageDown НетNo
PageLeftPageLeft НетNo
PageRightPageRight НетNo
ScrollUpScrollUp НетNo
ScrollDownScrollDown НетNo
ScrollLeftScrollLeft НетNo
ScrollRightScrollRight НетNo
SecondaryUpSecondaryUp НетNo
SecondaryDownSecondaryDown НетNo
SecondaryLeftSecondaryLeft НетNo
SecondaryRightSecondaryRight НетNo

Дополнительные сведения о контроллерах навигации пользовательского интерфейса и указанных выше командах см. в разделе Контроллер навигации в пользовательском интерфейсе.For more information about UI navigation controllers and the above commands, see UI navigation controller.

КлючиKeys

Далее описывается содержимое каждого подраздела в разделах Gamepad, RacingWheel, ArcadeStick, FlightStick и UINavigation.The following sections explain the contents of each of the subkeys under the Gamepad, RacingWheel, ArcadeStick, FlightStick, and UINavigation keys.

Сопоставление кнопокButton mapping

В таблице ниже приведены значения, которые необходимы для сопоставления кнопки.The table below lists the values that are needed to map a button. Например, если при нажатии DPadUp на игровом устройстве управления сопоставление DPadUp должно содержать значение ButtonIndex (значение Source — Button).For example, if pressing DPadUp on the game controller, the mapping for DPadUp should contain the ButtonIndex value (Source is Button). Если DPadUp необходимо сопоставить с положением переключателя, то сопоставление DPadUp должно содержать значения SwitchIndex и SwitchPosition (значение Source — 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).

ИсточникSource Имя значенияValue name Тип значенияValue type Необходим?Required? Сведения о значенииValue info
КнопкаButton ButtonIndexButtonIndex DWORDDWORD ДаYes Индекс в массиве кнопок RawGameController.Index in the RawGameController button array.
ОсьAxis AxisIndexAxisIndex DWORDDWORD ДаYes Индекс в массиве осей RawGameController.Index in the RawGameController axis array.
InvertInvert DWORDDWORD НетNo Указывает, что значение оси следует инвертировать перед применением коэффициентов ThresholdPercent и DebouncePercent.Indicates that the axis value should be inverted before the Threshold Percent and DebouncePercent factors are applied.
ThresholdPercentThresholdPercent DWORDDWORD ДаYes Указывает положение оси, в котором сопоставленное значение кнопки переходит между состоянием "нажато" и "отпущено".Indicates the axis position at which the mapped button value transitions between the pressed and released states. Допустимый диапазон значений — от 0 до 100.The valid range of values is 0 to 100. Кнопка считается нажатой, если значение оси больше или равно этому значению.The button is considered pressed if the axis value is greater than or equal to this value.
DebouncePercentDebouncePercent DWORDDWORD ДаYes

Определяет размер окна вокруг значения ThresholdPercent, которое используется для устранения ложного срабатывания обнаруженного состояния кнопки.Defines the size of a window around the ThresholdPercent value, which is used to debounce the reported button state. Допустимый диапазон значений — от 0 до 100.The valid range of values is 0 to 100. Переход между состояниями кнопки возможен, только если значение оси выходит за верхнюю или нижнюю границу окна между моментом.Button state transitions can only occur when the axis value crosses the upper or lower boundaries of the debounce window. Например, если ThresholdPercent имеет значение 50, а DebouncePercent — 10, то границами окна между моментом будет 45 % и 55 % от полных значений диапазона оси.For example, a ThresholdPercent of 50 and DebouncePercent of 10 results in debounce boundaries at 45% and 55% of the full-range axis values. Кнопка не может перейти в нажатое состояние, пока значение оси не достигнет 55 % или не превысит это значение, и не может перейти в отпущенное состояние, пока значение оси не достигнет 45 % или меньшего значения.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.

Вычисленные границы окна между моментом находятся в диапазоне от 0 % до 100 %.The computed debounce window boundaries are clamped between 0% and 100%. Например, пороговое значение 5 % и окно между моментом 20 % приведут к тому, что границы окна между моментом станут равны 0 % и 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%. Состояние кнопки для значений оси 0 % и 100 % всегда отображаются как отпущенное и нажатое соответственно независимо от порогового значения и значения между моментом.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.

КоммутаторSwitch SwitchIndexSwitchIndex DWORDDWORD ДаYes Индекс в массиве переключателей RawGameController.Index in the RawGameController switch array.
SwitchPositionSwitchPosition REG_SZREG_SZ ДаYes

Указывает положение переключателя, в котором сопоставленная кнопка сообщит о нажатии.Indicates the switch position that will cause the mapped button to report that it's being pressed. Значением положений может быть одна из этих строк:The position values can be one of these strings:

  • UpUp
  • UpRightUpRight
  • ПравыйRight
  • DownRightDownRight
  • DownDown
  • DownLeftDownLeft
  • ЛевыйLeft
  • UpLeftUpLeft
IncludeAdjacentIncludeAdjacent DWORDDWORD НетNo Указывает, что в смежных положениях переключателя сопоставленная кнопка также сообщит о нажатии.Indicates that adjacent switch positions will also cause the mapped button to report that it's being pressed.

Сопоставление осейAxis mapping

В таблице ниже приведены значения, которые необходимы для сопоставления оси.The table below lists the values that are needed to map an axis:

ИсточникSource Имя значенияValue name Тип значенияValue type Необходим?Required? Сведения о значенииValue info
КнопкаButton MaxValueButtonIndexMaxValueButtonIndex DWORDDWORD ДаYes

Индекс в массиве кнопок RawGameController, который преобразуется в сопоставленное однонаправленное значение оси.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 НетNo

Указывает, что сопоставленная ось двунаправленная.Indicates that the mapped axis is bidirectional. Значения MaxButton и MinButton объединяются в одну двунаправленную ось, как показано ниже.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
ОсьAxis AxisIndexAxisIndex DWORDDWORD ДаYes Индекс в массиве осей RawGameController.Index in the RawGameController axis array.
InvertInvert DWORDDWORD НетNo Указывает, что сопоставленное значение оси следует инвертировать перед возвратом.Indicates that the mapped axis value should be inverted before it's returned.
КоммутаторSwitch SwitchIndexSwitchIndex DWORDDWORD ДаYes Индекс в массиве переключателей RawGameController.Index in the RawGameController switch array.
MaxValueSwitchPositionMaxValueSwitchPosition REG_SZREG_SZ ДаYes

Одна из следующих строк:One of the following strings:

  • UpUp
  • UpRightUpRight
  • ПравыйRight
  • DownRightDownRight
  • DownDown
  • DownLeftDownLeft
  • ЛевыйLeft
  • UpLeftUpLeft

Указывает положение переключателя, в котором сопоставленное значение оси отображается как равное 1,0.It indicates the position of the switch that causes the mapped axis value to be reported as 1.0. Противоположное направление MaxValueSwitchPosition считается равным 0,0.The opposing direction of MaxValueSwitchPosition is treated as 0.0. Например, если значение MaxValueSwitchPosition равно Up, значение оси преобразуется, как показано ниже:For example, if MaxValueSwitchPosition is Up, the axis value translation is shown below:

Положение переключателяSwitch position AxisValueAxisValue
UpUp 1.01.0
CenterCenter 0,50.5
DownDown 0,00.0
IncludeAdjacentIncludeAdjacent DWORDDWORD НетNo

Указывает, что в смежных положениях переключателя сопоставленная ось также сообщит значение 1,0.Indicates that adjacent switch positions will also cause the mapped axis to report 1.0. В примере выше, если установлено значение IncludeAdjacent, преобразование оси выполняется следующим образом:In the above example, if IncludeAdjacent is set, then the axis translation is done as follows:

Положение переключателяSwitch position AxisValueAxisValue
UpUp 1.01.0
UpRightUpRight 1.01.0
UpLeftUpLeft 1.01.0
CenterCenter 0,50.5
DownDown 0,00.0
DownRightDownRight 0,00.0
DownLeftDownLeft 0,00.0

Сопоставление переключателейSwitch mapping

Положения переключателя могут быть сопоставлены с набором кнопок в массиве кнопок RawGameController или с индексом в массиве переключателей.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. Переключения положений не могут быть сопоставлены с осями.Switch positions can't be mapped from axes.

ИсточникSource Имя значенияValue name Тип значенияValue type Сведения о значенииValue info
КнопкаButton ButtonCountButtonCount DWORDDWORD 2, 4 или 82, 4, or 8
SwitchKindSwitchKind REG_SZREG_SZ TwoWay, фаурвайили еигхтвай TwoWay, FourWay, or EightWay
UpButtonIndexUpButtonIndex DWORDDWORD См. раздел Значения \*ButtonIndexSee \*ButtonIndex values
DownButtonIndexDownButtonIndex DWORDDWORD
LeftButtonIndexLeftButtonIndex DWORDDWORD
RightButtonIndexRightButtonIndex DWORDDWORD
UpRightButtonIndexUpRightButtonIndex DWORDDWORD
DownRightButtonIndexDownRightButtonIndex DWORDDWORD
DownLeftButtonIndexDownLeftButtonIndex DWORDDWORD
UpLeftButtonIndexUpLeftButtonIndex DWORDDWORD
ОсьAxis SwitchKindSwitchKind REG_SZREG_SZ TwoWay, FourWay или EightWayTwoWay, FourWay, or EightWay
XAxisIndexXAxisIndex DWORDDWORD YAxisIndex всегда присутствует.YAxisIndex is always present. XAxisIndex присутствует, только если SwitchKind имеет значение FourWay или EightWay.XAxisIndex is only present when SwitchKind is FourWay or EightWay.
YAxisIndexYAxisIndex DWORDDWORD
XDeadZonePercentXDeadZonePercent DWORDDWORD Указывает размер мертвой зоны вокруг центрального положения осей.Indicate the size of the dead zone around the center position of the axes.
YDeadZonePercentYDeadZonePercent DWORDDWORD
XDebouncePercentXDebouncePercent DWORDDWORD Определите размер окон вокруг верхнего и нижнего ограничения мертвой зоны, которые используются для устранения ложного срабатывания переданного состояния переключателя.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 Указывает, что соответствующие значения оси следует инвертировать перед применением вычислений мертвой зоны и окна между моментом.Indicate that the corresponding axis values should be inverted before the dead zone and debounce window calculations are applied.
YInvertYInvert DWORDDWORD
КоммутаторSwitch SwitchIndexSwitchIndex DWORDDWORD Индекс в массиве переключателей RawGameController.Index in the RawGameController switch array.
InvertInvert DWORDDWORD Указывает, что переключатель сообщает о положении против часовой стрелки, а не по часовой стрелке.Indicates that the switch reports its positions in a counter-clockwise order, rather than the default clockwise order.
PositionBiasPositionBias DWORDDWORD

Смещает начальную точку передачи сведений о положении на указанную величину.Shifts the starting point of how positions are reported by the specified amount. PositionBias всегда учитывается по часовой стрелке от исходной начальной точки и применяется перед изменением порядка значений на обратный.PositionBias is always counted clockwise from the original starting point, and is applied before the order of values is reversed.

Например, переключатель, который сообщает о положениях начиная с DownRight против часовой стрелки, можно нормализовать, указав флаг Invert и присвоив PositionBias значение 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:

ПоложениеPosition Переданное значениеReported value После установки флагов PositionBias и InvertAfter PositionBias and Invert flags
DownRightDownRight 00 33
ПравыйRight 11 22
UpRightUpRight 22 11
UpUp 33 00
UpLeftUpLeft 44 77
ЛевыйLeft 55 66
DownLeftDownLeft 66 55
DownDown 77 44

Значения *ButtonIndex*ButtonIndex values

*Буттониндекс значения индекса в массив кнопок равгамеконтроллер:*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

Сопоставление свойствProperties mapping

Это статическое сопоставление значений для различных типов сопоставления.These are static mapping values for different mapping types.

СопоставлениеMapping Имя значенияValue name Тип значенияValue type Сведения о значенииValue info
RacingWheelRacingWheel MaxWheelAngleMaxWheelAngle DWORDDWORD Указывает максимальный физический угол колесика, поддерживаемый в одном направлении.Indicates the maximum physical wheel angle supported by the wheel in a single direction. Например, для колесика с возможностью поворота от –90 градусов до 90 градусов здесь будет указано значение 90.For example, a wheel with a possible rotation of -90 degrees to 90 degrees would specify 90.

МеткиLabels

Метки должны находиться в разделе Labels в корневом каталоге устройства.Labels should be present under the Labels key under the device root. В разделе Labels может быть три подраздела: Buttons, Axes и Switches.Labels can have 3 subkeys: Buttons, Axes, and Switches.

Метки кнопокButton labels

Раздел Buttons сопоставляет каждую позицию кнопки в массиве кнопок RawGameController со строкой.The Buttons key maps each of the button positions in the RawGameController's buttons array to a string. Каждая строка внутренне сопоставляется с соответствующим значением перечисления GameControllerButtonLabel.Each string is mapped internally to the corresponding GameControllerButtonLabel enum value. Например, если на геймпаде 10 кнопок и RawGameController анализирует кнопки и представляет их в отчете о кнопках в следующем порядке: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

Метки в разделе Buttons должны отображаться в следующем порядке:The labels should appear in this order under the Buttons key:

ИмяName Значение (тип: REG_SZ)Value (type: REG_SZ)
Button0Button0 МенюMenu
Button1Button1 ПредставлениеView
Button2Button2 LeftStickButtonLeftStickButton
Button3Button3 RightStickButtonRightStickButton
Button4Button4 LetterALetterA
Button5Button5 LetterBLetterB
Button6Button6 LetterXLetterX
Button7Button7 LetterYLetterY
Button8Button8 LeftBumperLeftBumper
Button9Button9 RightBumperRightBumper

Метки осейAxis labels

Раздел Axes сопоставляет каждую позицию оси в массиве осей RawGameController с одной из меток в перечислении перечисления GameControllerButtonLabel, как и метки кнопок.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. См. пример в разделе Метки кнопок.See the example in Button labels.

Метки переключателейSwitch labels

Раздел Switches сопоставляет положения переключателей с метками.The Switches key maps switch positions to labels. Для значений используется следующее соглашение об именовании: чтобы получить метку положения переключателя с индексом x в массиве переключателей RawGameController, добавьте эти значения в подраздел 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

В следующей таблице привет пример набора меток для положения 4-позиционного переключателя, которые отображаются с индексом 0 в 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:

ИмяName Значение (тип: REG_SZ)Value (type: REG_SZ)
Switch0UpSwitch0Up XboxUpXboxUp
Switch0RightSwitch0Right XboxRightXboxRight
Switch0DownSwitch0Down XboxDownXboxDown
Switch0LeftSwitch0Left XboxLeftXboxLeft

Пример файла реестраExample registry file

Вот приведен пример сопоставлений и значений в файле реестра для универсального элемента управления RacingWheel: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

См. также разделSee also