# @ohos.multimodalInput.keyEvent (Key Event) The **keyEvent** module provides key events reported by input devices. > **NOTE** > > The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. ## Modules to Import ```js import {Action, Key, KeyEvent} from '@ohos.multimodalInput.keyEvent'; ``` ## Action Key event type. **System capability**: SystemCapability.MultimodalInput.Input.Core | Name | Value | Description | | ------ | ------- | -------- | | CANCEL | 0 | Cancellation of a key action.| | DOWN | 1 | Pressing of a key.| | UP | 2 | Release of a key.| ## Key Defines a key. **System capability**: SystemCapability.MultimodalInput.Input.Core | Name | Type| Readable| Writable| Description | | ----------- | -------- | ---- | ---- | -------------- | | code | KeyCode | Yes | No | Keycode. | | pressedTime | number | Yes | No | Duration for pressing a key, in μs.| | deviceId | number | Yes | No | ID of the device to which the key belongs. | ## KeyEvent Key event. **System capability**: SystemCapability.MultimodalInput.Input.Core | Name | Type| Readable| Writable| Description | | ----------- | -------- | ---- | ---- | ------------------------------ | | action | [Action](#action) | Yes | No | Key action. | | key | [Key](#key) | Yes | No | Key for which the event is reported. | | unicodeChar | number | Yes | No | Unicode character corresponding to the key. | | keys | Key[] | Yes | No | List of pressed keys. | | ctrlKey | boolean | Yes | No | Whether ctrlKey is being pressed.
The value **true** indicates that the key is pressed, and the value **false** indicates the opposite.| | altKey | boolean | Yes | No | Whether altKey is being pressed. | | shiftKey | boolean | Yes | No | Whether shiftKey is being pressed. | | logoKey | boolean | Yes | No | Whether logoKey is being pressed. | | fnKey | boolean | Yes | No | Whether fnKey is being pressed. | | capsLock | boolean | Yes | No | Whether capsLock is active.
The value **true** indicates that capsLock is active, and the value **false** indicates the opposite. | | numLock | boolean | Yes | No | Whether numLock is active. | | scrollLock | boolean | Yes | No | Whether scrollLock is active.|