>> [Python] 키보드 후킹 - 2. 간편화 코드


콜백 함수에 getFPTR을 호출하여 함수 포인터 얻는 것을 installHookProc 함수 안에서 하도록 처음 시도하였을 때 에러가 발생하였다.
        pointer = KeyRogue.getFPTR(KeyRogue.hookProcInternal)
         
        KeyRogue.hooked = KeyRogue.user32.SetWindowsHookExA(
            KeyRogue.WH_KEYBOARD_LL,
            pointer,
            KeyRogue.kernel32.GetModuleHandleW(None),
            0
        )

위 코드와 같이 getFPTR을 호출한 결과를 지역 변수로 받아서 SetWindowsHookExA 함수의 파라미터로 넘겼는데, static 하지않은 변수를 파라미터로 넘긴 것이 문제가 된 것이었다. 최종 코드와 같이 클래스 변수를 사용하여 파라미터를 넘겼을 때는 문제가 발생하지 않았다.

,