본문으로 건너뛰기

! 하드웨어 키보드 키 한 번 누르기 (: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())