1
python 스크립트를 실행하는 동안 CTRL | SHIFT | ALT가 눌러져 있는지 감지하고 싶습니다. SHIFT 키를 누른 상태에서 스크립트를 실행하면 GUI 대신 명령 줄 대신 열리는 팝업 창이 나타납니다.파이썬 ctypes로 Shift 키 누르기 감지
msvcrt.kbhit에서 SHIFT 키 프레스를 감지 할 수 없어서 파기를했기 때문에 매우 유망 해 보였던 solution를 발견했습니다. 테스트로 핫키 목록에 SHIFT를 추가했습니다. 불행하게도 아래의 코드를 dos 쉘에서 사용하면 ESC와 NUMLOCK 키가 올바르게 인식되지만 SHIFT 키는 인식하지 못하고 그 이유를 알 수 없습니다.
모든 통찰력을 주시면 감사하겠습니다.
import ctypes, ctypes.wintypes
import win32con
# Register hotkeys
ctypes.windll.user32.RegisterHotKey(None, 1, 0, win32con.VK_ESCAPE)
ctypes.windll.user32.RegisterHotKey(None, 1, 0, win32con.VK_NUMLOCK)
ctypes.windll.user32.RegisterHotKey(None, 1, 0, win32con.VK_LSHIFT)
ctypes.windll.user32.RegisterHotKey(None, 1, 0, win32con.VK_RSHIFT)
# Loop until one of the hotkeys are pressed
try:
msg = ctypes.wintypes.MSG()
while ctypes.windll.user32.GetMessageA(ctypes.byref(msg), None, 0, 0) != 0:
if msg.message == win32con.WM_HOTKEY:
print("KEY PRESSED!")
ctypes.windll.user32.TranslateMessage(ctypes.byref(msg))
ctypes.windll.user32.DispatchMessageA(ctypes.byref(msg))
# Cleanup
finally:
ctypes.windll.user32.UnregisterHotKey(None, 1)