2009-12-24 5 views
2

문자열을 키 코드로 변환하여 Xlib로 쓰고 싶습니다 (리눅스에서 사용자 액션을 시뮬레이트하기 위해). 키 코드는 '가'는 문자가 자리수의이며, 다음 만들면 내가 easly 감지 할 수있는 24파이썬에서 키 코드로 사용하는 문자

입니다 대한 exemple 키 코드에 대한

linuxKeyPress event, serial 33, synthetic NO, window 0x6400001, 
    root 0x13c, subw 0x0, time 51212100, (259,9), root:(262,81), 
    state 0x0, keycode 24 (keysym 0x61, a), same_screen YES, 
    XLookupString gives 1 bytes: (61) "a" 
    XmbLookupString gives 1 bytes: (61) "a" 
    XFilterEvent returns: False 

에 것으로 xev를 사용 할 때 얻을 아스키하지만 코드없는 ALT + 소문자 (문자)를 조합 한 것이지만 키 코드를 얻는 방법을 모르겠습니다.

한 가지 해결책은 모든 조합 (a = 24, b = 56, c = 54, ...)의 목록이 될 수 있지만 기능이 있으면 더 좋을 것입니다.

아제르 (azerty) 키보드를 사용하고 있습니다. 쿼티 키보드에서 동일한 문자의 키 코드가 다른가요? 사용자는 예를 들어, QWERTY 키보드에 드보락 레이아웃을 사용할 수 있습니다 -

+1

'A' 내 쿼티 키보드의 키 코드 (38)가 사용합니다. – unutbu

답변

5

내가 정확히 원하는대로하고있는 this code을 찾았습니다.

그것은 기능 display.keysym_to_keycode(Xlib.XK.string_to_keysym(char))

+0

차갑다. 솔루션을 게시 해 주셔서 감사합니다. – unutbu

3

키 코드는 키보드 하드웨어뿐만 아니라 키보드 레이아웃에 대한 사용자의 취향에뿐만 아니라 의존 감사합니다.

아마도 가장 좋은 해결책은 python-xlib를 사용하여 사용자의 키보드 환경 설정에 따라 정보를 찾는 것입니다. 나는 그것을하는 방법에 대한 세부 사항을 모른다.

조잡한 해결책은 xmodmap -pke을 실행하고 출력을 구문 분석하는 것입니다.

+0

정보를 주셔서 감사합니다. 그러나 코드 조각을 찾았습니다 (cf 내 대답) –

관련 문제