C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[52806] Re:Re:Re:Re:[Dispatch을 이용했는데 이상합니다.]
헤메고 있음. [] 1276 읽음    2008-03-20 11:53
우선 이렇게 답변해주신 장성호님께 감사드립니다.

우선 EnumWindows와 다른 방법을 해보았지만 역시 안됩니다.
말씀하신대로 Minimize를 하고 있어서 그런 것 같아서 핸들러를 찾아서 Show를 한 상태에서
그 핸들러에 SendMessage를 하는데 send한 WM_USER+1값이 Dispatch에서 받질 못하는 것 같습니다.
TForm1이 보이기는 하는데 다음 SendMessage값이 안들어오는 경우가 있습니다.
제가 잘못했나해서 핸들러를 찾고 show해보기도 하고 안하고 바로 Send를 해보았는데 안됩니다.
다른 방법을 찾아봐야겠습니다.

사이트를 찾아보니 장성호님께 쓰신 내용 중에 안해본 것이 있어 오늘 도전을 해볼려고 합니다.
감사합니다. 즐거운 하루보내세요.

장성호 님이 쓰신 글 :
: FindWindow에 문제가 있을것 같습니다.
:
: FindWindow로 정확히 원하는 폼을 못찾을수 있습니다.
:
: 1. 같은 클래스 이름이 있는경우
: 2. 같은 Caption이 있는경우
: 3. 폼이 Hide되어있는경우
: 4. 폼이 Minimize되어있는경우
: 5. 등등..
:
: EnumWindows를 이용해서 찾아보길 권합니다.
:
:
: 헤메고 있음. 님이 쓰신 글 :
: : 감사합니다. 이렇게 도와주실 분이 있다니 ^^
: :
: : 우선 죄송합니다. 제가 제대로 질문을 못한 것 같습니다.
: :
: :
: : 현재 폼기반에 프로그램(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로 오버라이드했는데.
: : : :
: : : : ㅡㅡ; 어떤 컴퓨터에서는 잘되고 어떤 컴퓨터에서는 메세지를 잘 못받습니다.
: : : :
: : : : 어떤 문제인지 아시는 분 .. 힌트라도

+ -

관련 글 리스트
52782 [Dispatch을 이용했는데 이상합니다.] 헤메고 있음. 1397 2008/03/19
52784     Re:[Dispatch을 이용했는데 이상합니다.] 장성호 1071 2008/03/19
52788         Re:Re:[Dispatch을 이용했는데 이상합니다.] 헤메고 있음. 1036 2008/03/19
52789             Re:Re:Re:[Dispatch을 이용했는데 이상합니다.] 장성호 1104 2008/03/19
52806                 Re:Re:Re:Re:[Dispatch을 이용했는데 이상합니다.] 헤메고 있음. 1276 2008/03/20
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.