2017-12-12 11 views
0

매 시간 내 벽지를 변경하는 파이썬 프로그램을 만들고 있지만 특정 버튼을 누르면 배경 화면을 변경할 수 있기를 원합니다. 파이썬이 걸리지 않고 키보드 입력 받기

내가
while True: 
    key = ord(getch()) 

하지만 유일한 나쁜 부분은 내가 뭔가를 누를 때까지가 그에 걸리면이다

을 해봤 코드입니다. 이 작업을 수행하는 더 좋은 방법이 있습니까?

답변

0

https://pypi.python.org/pypi/pynput을 사용하여 원하는 것을 얻을 수 있습니다.

pythonhosted http://pythonhosted.org/pynput/에 관한 문서를 참조하십시오. 특히 키보드 모니터링에 대한 섹션 http://pythonhosted.org/pynput/keyboard.html#monitoring-the-keyboard을 참조하십시오.

from pynput.keyboard import Key 
from pynput.keyboard import Listener 


def on_press(key): 
    print('{0} pressed'.format(
     key)) 

def on_release(key): 
    print('{0} release'.format(
     key)) 
    if key == Key.esc: 
     # Stop listener 
     return False 

# Collect events until released 
with Listener(
     on_press=on_press, 
     on_release=on_release) as listener: 
    listener.join() 

당신이 종료하게되는 ESC을 누를 때까지 그것은 당신이 누를 때마다 키를 출력 할 것이다 :

다음은 문서의 예입니다.

예를 들어, OSX과 같이 고려해야 할 운영 체제 특정 사항이 있음을 유의하십시오. 프로세스는 루트로 실행되어야합니다.

0

나는 우연히 이것을 발견했습니다.

import msvcrt 

    if msvcrt.kbhit(): 
     Key = ord(getch()) 
     if Key ==96: 
      #Do something here 

그러면 작동하는 것 같습니다. msvcrt.kbhit()가 키 누르기를 기다리고 있다고 생각합니다. Key = ord (getch())는 키 누르기를 취하고 Key == 96 인 경우 : 해당 키 누르기가 맞는지 확인합니다.