감사합니다. 이렇게 도와주실 분이 있다니 ^^
우선 죄송합니다. 제가 제대로 질문을 못한 것 같습니다.
현재 폼기반에 프로그램(MemChange.exe)을 하나 작성했습니다. 그리고 라이브러리 형태로 shellmenu (shellext)형태로 탐색기에서 오른쪽 메뉴 추가할려고 만든 것이 있으며 여기에서 메뉴가 선택이 되면 MemChange.exe를 findwindow를 이용해서 프로그램을 찾고 그 핸들러를 이용해서 SendMessage(hwnd, WM_USER+1, 0, 0);로 프로그램 이벤트를 날렸습니다.
그리고 알려주신 내용대로 Dispatch를 이용해서 SendMessage에서 보낸 WM_USER+1를 받아서 임의 처리를 할려고 했습니다.
그런데 같은 xp라도 어떤 컴퓨터에서는 잘작동하는데 다른 xp 컴퓨터에서는 프로그램을 찾은 것 같은데 Dispatch에서 switch (msg->msg)
{
case WM_USER+1: ...
}
형태로 했는데 메시지가 들어오지 않습니다. 같은 프로그램을 컴퓨터에 따라서 동작이 제대로 되는 경우와 안되는 경우가 있어 지금 몇일째 헤메고 있습니다.
장성호 님이 쓰신 글 :
: 글세요?
:
: 어떤 컴퓨터는 받고 , 어떤 컴퓨터는 못 받던가요?
: 어떤 컴퓨터인지 좀 가르쳐 줘야 도움을 주기 쉬울것 같습니다만..
:
: 참고로 Window Vista에서는 권한이 낮은 application에서 높은 Application으로
: SendMessage로 메세지를 기본적으로는 못보냅니다.
:
: 그럼..
:
:
: 헤메고 있음. 님이 쓰신 글 :
: : 팁&트릭에서 메세지에 대한 오버라이트를 보고 프로그램을 했습니다.
: :
: : Dispatch를 쓰던지 ...
: : #define MY_MSG WM_APP+100
: :
: : virtual void __fastcall Dispatch(void *Message);
: :
: : http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_tip&no=542
: :
: : 제일 쉬운 방법이라고 Dispatch를 만들어 visual로 오버라이드했는데.
: :
: : ㅡㅡ; 어떤 컴퓨터에서는 잘되고 어떤 컴퓨터에서는 메세지를 잘 못받습니다.
: :
: : 어떤 문제인지 아시는 분 .. 힌트라도
|