안녕하세요. 현재 게임프로그래머로서 일을 하고 있는 회사인입니다.

Atl+Tab과 관련하여 괴상한 일이 발생하여 여기에서라도 답을 얻고 싶어 질문을 올리게되었습니다.


Atl+Tab와 WindowKey등은 화면전환을 이벤트로 발생하는데요.

이를 막아달라는 퍼블리셔의 요청이 있어 작업중에 있습니다.

헌데 키보드 후킹(SetWindowsHookEx의 WH_KEYBOARD_LL을 이용합니다)을 

통하여 막으려는데 잘 되질 않네요. 

저는 글로벌 후킹을 시도하였으며 DLL을 통하여 로드를 하였습니다.


테스트 프로그램를 작성하여 사용하였을 때에는 무척 잘 동작합니다.

또한 작동하지 않았던 게임도 테스트 프로그램을 통하여 글로벌 후킹을 할땐 또 잘 작동하네요.

오로지 제가 제작하고 있는 게임 바이너리나 이와 연결되는 DLL등에만

코드 작업을 하면 어떠한 짓을 하더라도 작동하지 않습니다.


단, 게임에 포커싱을 두어 게임창이 메세지를 받을 때에만 후킹 프로시져가 동작하지 않습니다.

게임이외에 어떠한 프로그램이라도 포커싱을 두면 훅 프로시져가 잘만 동작하는데

혹시 이러한 현상을 겪으신 분이 계신가요?


- 바이너리 혹은 DLL에 후킹을 시도하는 코드를 넣고 초기화한다.

- 게임에 포커싱을 두었을 땐, 후킹 프로시져에 아무런 메세지를 받지않는다.

- 게임 이외에 다른 프로그램에 포커싱을 두었을 땐, 모든 메세지를 받아 처리하며 Atl+Tab 등의 명령어를 무효화시킨다.

- 핵 프로그램 또는 테스트 프로그램을 동작시켜 게임과 함께 실행하였을 땐 Atl+Tab등의 명령어(이렇게 되어야만 합니다)가 동작하지 않는다.