Python에서 키보드 이벤트를 생성하는 방법
컴퓨터 시스템이 시뮬레이션된 키보드 이벤트를 실제 키 입력으로 처리하려면 다음과 같은 솔루션이 필요합니다. 입력 필드에 문자를 보내는 것 이상입니다. 실행 가능한 옵션 중 하나는 ctypes 라이브러리를 사용하여 운영 체제의 입력 시스템과 직접 통신하는 것입니다.
ctypes 사용
ctypes는 C 호환 라이브러리와 상호 작용하는 방법을 제공합니다. 그리고 Python 내의 함수. ctypes를 사용하여 키보드 이벤트를 시뮬레이션하려면 다음 단계를 따르세요.
<code class="python">import ctypes from ctypes import wintypes import time</code>
<code class="python">user32 = ctypes.WinDLL('user32', use_last_error=True)</code>
<code class="python"># Keyboard input structure KEYBDINPUT = ctypes.Structure() KEYBDINPUT._fields_ = (("wVk", wintypes.WORD), ("wScan", wintypes.WORD), ("dwFlags", wintypes.DWORD), ("time", wintypes.DWORD), ("dwExtraInfo", wintypes.ULONG_PTR)) # General input structure INPUT = ctypes.Structure() INPUT._fields_ = (("type", wintypes.DWORD), ("ki", KEYBDINPUT))</code>
<code class="python">def PressKey(hexKeyCode): x = INPUT(type=INPUT_KEYBOARD, ki=KEYBDINPUT(wVk=hexKeyCode)) user32.SendInput(1, ctypes.byref(x), ctypes.sizeof(x)) def ReleaseKey(hexKeyCode): x = INPUT(type=INPUT_KEYBOARD, ki=KEYBDINPUT(wVk=hexKeyCode, dwFlags=KEYEVENTF_KEYUP)) user32.SendInput(1, ctypes.byref(x), ctypes.sizeof(x))</code>
<code class="python">PressKey(VK_MENU) # Alt PressKey(VK_TAB) # Tab ReleaseKey(VK_TAB) # Tab~ time.sleep(2) ReleaseKey(VK_MENU) # Alt~</code>
추가 고려 사항
hexKeyCode는 Windows API에서 정의한 가상 키보드 매핑을 나타냅니다. 이러한 코드 목록은 Microsoft의 MSDN 문서에서 찾을 수 있습니다.
이 접근 방식을 사용하면 낮은 수준에서 키보드 이벤트를 시뮬레이션하여 시스템에서 실제 키 입력으로 처리되도록 할 수 있습니다.
위 내용은 ctypes를 사용하여 Python에서 키보드 이벤트를 시뮬레이션하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!