> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# IGameInputReading::GetSystemButtonState

> Recupera o estado dos botões do sistema, como os botões Guia e Compartilhar, de uma leitura de entrada.

Recupera o estado dos botões do sistema, como os botões Guia e Compartilhar, de uma leitura de entrada.

## Sintaxe

```cpp theme={null}
bool GetSystemButtonState(
    GameInputSystemButtons* buttons
);
```

### Parâmetros

*buttons*   \_Out\_\
Tipo: [GameInputSystemButtons](https://docs.xbox.com/pt-BR/reference/input/gameinput/enums/gameinputsystembuttons.md)\*

Recebe o conjunto de botões do sistema pressionados nesta leitura.

### Valor retornado

Tipo: bool

Retorna `true` se a leitura contiver o estado dos botões do sistema. Retorna `false` se não contiver; nesse caso, *buttons* é definido como `GameInputSystemButtonNone`.

## Comentários

No GameInput v4, os botões do sistema são um tipo de entrada comum, `GameInputKindSystemButton`. Todas as leituras de um dispositivo que tem botões do sistema incluem `GameInputKindSystemButton` em [IGameInputReading::GetInputKind](https://docs.xbox.com/pt-BR/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getinputkind.md), e `GetSystemButtonState` retorna o estado atual desses botões da mesma forma que [IGameInputReading::GetGamepadState](https://docs.xbox.com/pt-BR/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getgamepadstate.md) retorna o estado dos botões do gamepad. Para descobrir quais botões do sistema um dispositivo tem, chame [IGameInputDevice::GetSupportedSystemButtons](https://docs.xbox.com/pt-BR/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getsupportedsystembuttons.md).

A leitura relata quais botões estão pressionados, não eventos de pressionamento ou liberação. Para detectar um pressionamento ou uma liberação, compare o estado com o estado da leitura anterior.

Este método substitui o método [IGameInput::RegisterSystemButtonCallback](https://docs.xbox.com/pt-BR/reference/input/gameinput/deprecated/interfaces/igameinput/methods/igameinput_registersystembuttoncallback.md) das versões anteriores do GameInput. Use [IGameInput::RegisterReadingCallback](https://docs.xbox.com/pt-BR/reference/input/gameinput/interfaces/igameinput/methods/igameinput_registerreadingcallback.md) com `GameInputKindSystemButton`, ou faça uma sondagem com [IGameInput::GetCurrentReading](https://docs.xbox.com/pt-BR/reference/input/gameinput/interfaces/igameinput/methods/igameinput_getcurrentreading.md), para receber a entrada dos botões do sistema.

A entrada dos botões do sistema é entregue somente enquanto o aplicativo está em foco, a menos que a entrada em segundo plano esteja habilitada com [IGameInput::EnableBackgroundInput](https://docs.xbox.com/pt-BR/reference/input/gameinput/interfaces/igameinput/methods/igameinput_enablebackgroundinput.md).

O exemplo a seguir mostra como detectar um novo pressionamento do botão Guia.

```cpp theme={null}
Microsoft::WRL::ComPtr<IGameInput> gameInput;
GameInputSystemButtons previousButtons = GameInputSystemButtonNone;

void PollGuideButton() noexcept
{
    Microsoft::WRL::ComPtr<IGameInputReading> reading;
    if (SUCCEEDED(gameInput->GetCurrentReading(GameInputKindSystemButton, nullptr, &reading)))
    {
        GameInputSystemButtons buttons = GameInputSystemButtonNone;
        if (reading->GetSystemButtonState(&buttons))
        {
            const bool guidePressed = (buttons & GameInputSystemButtonGuide) != 0;
            const bool guidePreviouslyPressed = (previousButtons & GameInputSystemButtonGuide) != 0;
            if (guidePressed && !guidePreviouslyPressed)
            {
                // Handle new Guide button press
            }

            previousButtons = buttons;
        }
    }
}
```

## Requisitos

**Cabeçalho:** GameInput.h

**Biblioteca:** gameinput.lib

**Plataformas com suporte:** Windows, consoles da família XBOX One e consoles XBOX Series

## Confira também

[Visão geral do GameInput](https://docs.xbox.com/pt-BR/build/core-features/common/input/overviews/input-overview.md)\
[IGameInputReading](https://docs.xbox.com/pt-BR/reference/input/gameinput/interfaces/igameinputreading/igameinputreading.md)\
[GameInputSystemButtons](https://docs.xbox.com/pt-BR/reference/input/gameinput/enums/gameinputsystembuttons.md)\
[GameInputKind](https://docs.xbox.com/pt-BR/reference/input/gameinput/enums/gameinputkind.md)\
[IGameInput::EnableBackgroundInput](https://docs.xbox.com/pt-BR/reference/input/gameinput/interfaces/igameinput/methods/igameinput_enablebackgroundinput.md)\
[IGameInputDevice::GetSupportedSystemButtons](https://docs.xbox.com/pt-BR/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getsupportedsystembuttons.md)

## Histórico de versões

| Versão | Alterações |
| - | - |
| **v4** | Introduzido. |


## Related topics

- [GameInputSystemButtons](https://docs.xbox.com/pt-BR/reference/input/gameinput/enums/gameinputsystembuttons.md)
- [IGameInputDevice::GetSupportedSystemButtons](https://docs.xbox.com/pt-BR/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getsupportedsystembuttons.md)
- [RegisterSystemButtonCallback (Preterido)](https://docs.xbox.com/pt-BR/reference/input/gameinput/deprecated/interfaces/igameinput/methods/igameinput_registersystembuttoncallback.md)
- [GameInputKind](https://docs.xbox.com/pt-BR/reference/input/gameinput/enums/gameinputkind.md)
- [Membros da API do GameInput](https://docs.xbox.com/pt-BR/reference/input/gameinput/gameinput_members.md)
