2012-03-15 3 views
3

주 응용 프로그램의 보조 (GUI가 아닌) 스레드에서 시작되는 플러그인 DLL이 있습니다. DLL은 응용 프로그램의 기본 창에서 키보드 이벤트를 가져와야합니다. 나는 SetWindowsHookEx()을 사용하고 있으며 훌륭하게 작동합니다.Windows 키보드 후크가 디버거를 중단합니다

그러나 훅이 활성화되어있는 동안 Visual Studio에서 중단 점을 맞춘 다음 키를 누르면 Visual Studio와 응용 프로그램이 완전히 잠 깁니다. 이것은 대개 F 키를 사용하여 코드를 단계별로 실행하기 때문에 문제가됩니다. 마우스를 사용하여 Visual Studio의 디버그 메뉴에서 한 걸음 더 나아간다면 잘 동작합니다. 그러나 F10 et al. 그런 습관이있다, 나는 보통 마우스를 사용하는 것을 잊는다.

키보드 단축키를 다시 사용할 수 있습니까? 또는 다른 방법으로 키보드를들을 수 있습니까?

답변

4

디버거 중단으로 인해 알림 처리가 중단되어 키보드가 완전히 작동하지 않습니다. 다른 컴퓨터에서 원격 디버거를 사용하면 이와 같은 코드를 디버깅하는 좋은 방법입니다. 또한 HKEY_CURRENT_USER \ Control Panel \ Desktop \ LowLevelHooksTimeout 설정을 디버깅하는 동안 Windows가 후크를 제거하지 않도록 후크 타임 아웃을 늘리고 싶을 것입니다. WH_KEYBOARD_LL을 사용한다고 가정합니다.

관련 문제