남박사님 함수가 호출이 안되네요.
159
작성한 질문수 9
나만의 단축키 smart 강좌를 보고 따라 쳐봤는데, 키 인식은 잘되나 function1,2,3 함수가 호출이 되지 않아요.
무엇이 틀렸을까요?
답변 1
0
from pynput.keyboard import Key, Listener, KeyCode
import win32api
# 단축키 저장
MY_HOT_KEYS =[
{"function1": {Key.ctrl_l, Key.alt_l, KeyCode(char="n")}},
{"function2": {Key.shift, Key.ctrl_l, KeyCode(char="b")}},
{"function3": {Key.shift, Key.ctrl_l, KeyCode(char="g")}},
]
# 키가 눌러져있는 키 상태를 기억하는 변수(집합)
current_keys = set()
def function1():
print("함수1 호출")
win32api.WinExec("calc.exe")
def function2():
print("함수2 호출")
win32api.WinExec("notepad.exe")
def function3():
print("함수3 호출")
win32api.WinExec("C:\Program Files (x86)\Google\Chrome\Application\chrome.exe")
def key_pressed(key):
print("Pressed {}".format(key))
for data in MY_HOT_KEYS:
FUNCTION = list(data.keys())[0]
KEYS = list(data.values())[0]
if key in KEYS:
print("등록된 키 확인 {}".format(key))
current_keys.add(key)
if all(k in current_keys for k in KEYS):
function = eval(FUNCTION)
function()
def key_released(key):
print("Released {}".format(key))
if key in current_keys:
current_keys.remove(key)
if key == Key.esc:
return False
# on_press, on_release는 인자값
with Listener(on_press=key_pressed, on_release=key_released) as Listener:
Listener.join()
위의 코드를 그대로 복사해서 실행해본 결과 제 컴퓨터에서는 아무 문제 없이 동작하는걸 확인했습니다.
어떤 키를 인식하지 못하는지부터 확인하시어 해결해보셔야 할듯 합니다만 아마도 사용하시는 컴퓨터의 키 코드값이 다를거라 예상되는데 등록하신 n, b, g 등의 키값이 제대로 찍히는지 확인해보시기 바랍니다.
38강 = 연산자 더하고 빼기
0
60
2
주석처리
0
116
1
함수의 파라미터값 msg
0
155
1
강의자료 이미지 안나옴
0
239
3
강의자료 질문 두번째
0
165
3
강의자료 관련 질문
0
116
1
파이썬 예외 처리 try / except 파일 처리 코드가 실행이 안됩니다.
0
235
1
소수 너무 어려워요
0
245
1
imagefont 함수 사용
0
239
1
pylint
0
357
1
add 함수 문의 ㅠㅠ
0
283
1
형식 문의드립니다.
0
209
1
변수 명을 왜 src, tar로 하셨는지 궁금합니다.
0
602
1
숫자야구 코드를 짜 봤는데 뭔가 이상합니다.
0
253
1
zsh: command not found: pylint
0
269
1
텔레그램 봇 만들기 코드 실행이 안됩니다 박사님..ㅠ
0
546
1
질문드립니다.
1
374
2
list.reverse() 출력에 대해서 질문있습니다.
1
433
1
데코레이터 함수 및 동작시간 질문입니다.~
1
323
2
opencv 사용하면서 궁금한점 (해상도)
1
781
1
질문드립니다.
1
299
1
아래 오류가 뜨면서 vscode가 컴파일이 되지 않는데.. 혹시 왜이럴까요?
1
445
1
크롤링안되는 현상 문의 드립니다.
1
421
1
파이썬 크롤링 관련 문의
1
277
1





