! 하드웨어 키보드 키 한 번 누르기 (:press)
이 메서드는 20260805 이후 버전에서만 사용할 수 있습니다
선언
성공 여부, 오류 정보 = 하드웨어 키보드 객체:press(키 코드[, 누르는 시간])
성공 여부, 오류 정보 = 하드웨어 키보드 객체:press(Usage_Page, Usage_ID[, 누르는 시간])
매개변수
- 키 코드
문자열이며
key.press와 동일한 키 이름 매핑을 사용합니다. - Usage Page
정수이며 현재 하드웨어 키보드 객체는 Keyboard/Keypad Usage Page
0x07만 허용합니다. - Usage ID 정수로 된 물리 키 번호이며 문자 인코딩이 아닙니다.
- 누르는 시간 실수형 선택 매개변수로 키를 누른 후 유지할 시간을 밀리초 단위로 지정하며 기본값은 10밀리초입니다.
반환값
- 성공 여부
불리언입니다. 키를 눌렀다가 놓는 데 성공하면
true, 실패하면false를 반환합니다. - 오류 정보 문자열이며 작업에 실패하면 오류 정보를 반환합니다.
설명
대상 키를 누르고 지정된 시간만큼 기다린 후 놓습니다. 기다리는 동안 암묵적으로 실행권을 양보하므로 메서드가 반환되기 전에 다른 스레드가 실행 기회를 얻을 수 있습니다.
- 이 메서드는 호출 전에 이미 눌려 있던 일반 키와 보조 키(modifier)를 보호하며 현재 작업을 완료하기 위해 해당 키를 놓지 않습니다.
- 같은 하드웨어 키보드에서
:press또는:send_text시퀀스를 실행 중이면 새 작업은false, "hardware keyboard is busy"를 반환합니다. - 전송에 실패해도 다른 입력 방식으로 자동 재시도하지 않습니다.
예제
local keyboard = assert(key.connect_keyboard())
assert(keyboard:press("a"))
assert(keyboard:press(0x07, 4, 30)) -- 키보드 A, 30밀리초 동안 유지
assert(keyboard:disconnect())