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
[56408] 감사합니다~~
초보연구원 [] 2057 읽음    2009-03-11 14:31
설명 감사합니다.  한글 안의 Editer 클래스는 찾아서 바로는 못 쓰더라구요.

HWND hWnd1 = FindWindow("HwpApp : 7.0",  NULL);
HWND hWnd2 = FindWindowEx(hWnd1, NULL, "HwpMainEditWnd", NULL);
위와 같이 하여 hWnd2 의 핸들에 SendMessage를 해서 하니까 제가 원하는대로 되네요.

감사합니다~~~


장성호 님이 쓰신 글 :
: FindWindow로 찾는 윈도우는 한글 전체 윈도우
: 그리너까  C++Builder로 보면 Form이구요
:
: 한글안에 에디터 윈도우를 찾아서 메세지를 보내야 합니다.
:
: TForm위에 TMemo 같은게 올려져 있다면
:
: Form에 메세지를 보내서는 안되겠죠
: Form위에 있는 윈도우 중에 Memo를 찾아서 Memo윈도우에
: 키 메세지를 보내야 Memo에 무언가 기록될것입니다.
:
: 마찬가지로 한글프로그램도
: 한글 메인 윈도우가 아니라 그 안에 있는 Editer윈도우를 찾아서
: 그놈에게 메세지를 보내야 겠죠..
:
: 그럼..
:
:
: 초보연구원 님이 쓰신 글 :
: : void __fastcall TForm1::Button3Click(TObject *Sender)
: : {
: :     HWND hWnd = FindWindow("HwpApp : 7.0", "빈 문서 1 - 한글과컴퓨터 한글 ");
: :
: :     if(hWnd)
: :     {
: :       /*
: :       SendMessage(hWnd, WM_KEYDOWN, VK_TAB, 0);
: :       ::Sleep(500);
: :       SendMessage(hWnd, WM_KEYUP, VK_TAB, 0);
: :       */
: :       SendMessage(hWnd, WM_KEYDOWN, VK_RETURN, 0);
: :     }
: : }
: : 위와 같이 키다운만 하거나 슬립을 주거나 해서 해보고, 엔터키를 보내보아도 한글에서는 처리가 안되네요.
: : 파인드윈도우를 사용해서 핸들을 가지고는 있는데 안되는 것은 다른 이유일지 조언을 부탁드립니다.
: : 감사합니다.~
: :
: : 조대현.daf 님이 쓰신 글 :
: : :
: : : HWND hWnd = FindWindow(NULL, "빈 문서 1 - 한글");
: : : 
: : : if(hWnd)
: : : {
: : :   SendMessage(hWnd, WM_KEYDOWN, VK_TAB, 0);
: : :   SendMessage(hWnd, WM_KEYUP, VK_TAB, 0);
: : : }
: : : 

: : :
: : : 1. 코드는 참조만 하시구요. 대략 저런식으로 한글프로그램의 핸들을 얻어 Tab키가 눌린 메세지를 날려주면 됩니다.
: : : title로 찾지 마시고 spy프로그램을 이용하여 class name으로 찾으세요.
: : :
: : : 2. 그리고 KeyDown과 KeyUp을 동시에 보냈을때 제대로 작동할지 모르겠습니다. 저는 500ms뒤에 KeyUp을 보냈습니다.
: : :
: : : 3. Ctrl, Shift, Alt등의 특수키조합은 msdn을 참고하시고
: : : virtual key는 http://delphi.about.com/od/objectpascalide/l/blvkc.htm 여기를 참고하세요.

+ -

관련 글 리스트
56393 아래한글에 메세지보내기 초보연구원 2330 2009/03/10
56397     다시 요약해서 질문.^^; 초보연구원 1520 2009/03/11
56403         SendMessage 이용하세요~ 조대현.daf 1967 2009/03/11
56406             Re:SendMessage 이용하세요~ 초보연구원 4131 2009/03/11
56407                 Re:Re:SendMessage 이용하세요~ 장성호 3280 2009/03/11
56408                     감사합니다~~ 초보연구원 2057 2009/03/11
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.