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

# IGameInputDevice::GetKeyboardInfo

> 擷取裝置的鍵盤屬性，例如其鍵盤類型、配置和按鍵數目。

擷取裝置的鍵盤屬性，例如其鍵盤類型、配置和按鍵數目。

## 語法

```cpp theme={null}
bool GetKeyboardInfo(
    GameInputKeyboardInfo* info
);
```

### 參數

*info*   \_Out\_\
類型：[GameInputKeyboardInfo](https://docs.xbox.com/zh-TW/reference/input/gameinput/structs/gameinputkeyboardinfo.md)\*

指向 `GameInputKeyboardInfo` 結構的指標，此結構會接收裝置的鍵盤屬性。如果裝置不支援鍵盤輸入，結構的每個成員都會設定為零。

### 傳回值

類型：bool

如果裝置支援鍵盤輸入且已填入 *info*，則為 `true`；否則為 `false`。

## 備註

`GetKeyboardInfo` 方法會將裝置的鍵盤屬性複製到呼叫端提供的結構中。當 [GetSupportedInput](https://docs.xbox.com/zh-TW/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getsupportedinput.md) 傳回的值包含 `GameInputKindKeyboard` 時，裝置即支援鍵盤輸入。如果裝置不支援鍵盤輸入，`GetKeyboardInfo` 會將 *info* 初始化為零並傳回 `false`。

大部分的鍵盤屬性在裝置的存留期間內固定不變。例外的是 `layout` 成員，當作用中的鍵盤配置變更時 (例如，當使用者切換輸入語言時)，GameInput 會就地更新此成員。當配置變更時，GameInput 會對透過 [IGameInput::RegisterDeviceCallback](https://docs.xbox.com/zh-TW/reference/input/gameinput/interfaces/igameinput/methods/igameinput_registerdevicecallback.md) 註冊的裝置回呼引發 `GameInputDeviceEventKeyboardLayoutUpdated` [GameInputDeviceEvent](https://learn.microsoft.com/en-us/gaming/gdk/docs/reference/input/gameinput/enums/gameinputdeviceevent)。請從該回呼中再次呼叫 `GetKeyboardInfo` 以讀取新的配置。

下列範例示範如何查詢裝置的鍵盤屬性。

```cpp theme={null}
GameInputKeyboardInfo info;
if (device->GetKeyboardInfo(&info))
{
    uint32_t keyboardLayout = info.layout;
    uint32_t keyCount = info.keyCount;
    // ...
}
```

在 GameInput v3 及更早版本中，此資訊可從 [IGameInputDevice::GetDeviceInfo](https://docs.xbox.com/zh-TW/reference/input/gameinput/deprecated/interfaces/igameinputdevice/methods/igameinputdevice_getdeviceinfo.md) 所傳回 [GameInputDeviceInfo](https://docs.xbox.com/zh-TW/reference/input/gameinput/deprecated/structs/gameinputdeviceinfo.md) 結構的 `keyboardInfo` 成員取得。

## 需求

**標頭：** GameInput.h

**程式庫：** gameinput.lib

**支援的平台：** Windows、XBOX One 系列主機和 XBOX Series 主機

## 另請參閱

[GameInput 概觀](https://docs.xbox.com/zh-TW/build/core-features/common/input/overviews/input-overview.md)\
[GameInputKeyboardInfo](https://docs.xbox.com/zh-TW/reference/input/gameinput/structs/gameinputkeyboardinfo.md)\
[GetSupportedInput](https://docs.xbox.com/zh-TW/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getsupportedinput.md)\
[GameInputKind](https://docs.xbox.com/zh-TW/reference/input/gameinput/enums/gameinputkind.md)\
[IGameInput::RegisterDeviceCallback](https://docs.xbox.com/zh-TW/reference/input/gameinput/interfaces/igameinput/methods/igameinput_registerdevicecallback.md)\
[GameInputDeviceEvent](https://learn.microsoft.com/en-us/gaming/gdk/docs/reference/input/gameinput/enums/gameinputdeviceevent)\
[IGameInputReading::GetKeyState](https://docs.xbox.com/zh-TW/reference/input/gameinput/interfaces/igameinputreading/methods/igameinputreading_getkeystate.md)\
[IGameInputDevice](https://docs.xbox.com/zh-TW/reference/input/gameinput/interfaces/igameinputdevice/igameinputdevice.md)

## 版本歷程記錄

| 版本 | 變更 |
| - | - |
| **v4** | 已推出。 |


## Related topics

- [GameInputKeyboardInfo](https://docs.xbox.com/zh-TW/reference/input/gameinput/structs/gameinputkeyboardinfo.md)
- [IGameInput::RegisterKeyboardLayoutCallback (已淘汰)](https://docs.xbox.com/zh-TW/reference/input/gameinput/deprecated/interfaces/igameinput/methods/igameinput_registerkeyboardlayoutcallback.md)
- [IGameInputDevice::GetInputReportInfo](https://docs.xbox.com/zh-TW/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getinputreportinfo.md)
- [IGameInputDevice::GetGamepadInfo](https://docs.xbox.com/zh-TW/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getgamepadinfo.md)
- [IGameInputDevice::GetMouseInfo](https://docs.xbox.com/zh-TW/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getmouseinfo.md)
