2009-06-18 4 views
2

다른 응용 프로그램에 배치 한 창이 있습니다. 이 경우 Outlook 2003 Window에 주입 한 사용자 지정 응용 프로그램이 있습니다.부모 창이 차단 가속기

내 응용 프로그램에서 백 스페이스 키를 누르면 부모 창 (이 경우 Outlook)에 WM_COMMAND 메시지가 표시되는 문제가 있습니다. 내 제한된 Win API 경험에서 이것은 부모가 백 스페이스 키가 액셀러레이터라고 생각하고 응용 프로그램에서 볼 수 있기 전에 그것을 처리하고 있음을 나타내는 것 같습니다.

Outlook Accelerator 테이블을 가져 오려고 LoadAccelerators 함수를 실험하고 있지만 부모 창에 대한 테이블을 얻는 방법을 모르겠습니다.

아이디어가 있으십니까? 편집

: 내 텍스트 상자가 WM_KEYDOWN의 경우를 얻을 수 있음을 고지해야 할 1405

:

WM_COMMAND wNotifyCode : (가속기에서 전송) 1 WID 여기 내가 백 스페이스 키를 누르 때 ++ 스파이의 출력입니다 백 스페이스 키를 누릅니다.

P WM_KEYDOWN nVirtKey : VK_BACK cRepeat : 1 ScanOcde : 0EfExtended : 0fAltDown : 0fRepeat : 0fUp : 0

감사합니다 여기에 해당 메시지에 대한 스파이 ++ 라인입니다.

답변

0

코드를 Outlook 프로세스에 삽입하고 있습니까? 악의적 인 종류의 소리 ... 어쨌든, 가속기 테이블은 실제로 창과 관련이 없습니다. 그것들은 애플리케이션의 메시지 펌프에 의해 처리됩니다 (TranslateAccelerator 함수 참조). 최선의 방법은 메시지 후크를 사용하는 것입니다. 창을 대상으로 삭제 키 다운 메시지가 표시되면 다른 비공개 메시지를 창에 게시하고 원본을 먹어서 Outlook에서 표시되지 않도록하십시오.

+0

Xobni를 사용해 본 적이 있습니까? 그들은 똑같은 일을합니다. Outlook 용 API는 2003 년에는 다소 제한적입니다. 2007 년은 다소 다른 이야기입니다. 도움을 주셔서 감사합니다. – Max

+0

나는 이것이 Outlook에 통합되는 매우 일반적인 방법이라는 것에 동의해야합니다. – 76mel

관련 문제