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
[44775] Re:다른 프로그램 제어 방법 문의
istree [] 2791 읽음    2006-05-08 17:48
/***********************************************************************************/
// 윈도우 이름이 A라는 TMainForm의 핸들(HWND)을 얻어서 첫번째 자식 패널의 "Start"라는 캡션을
// 가진 버튼을 클릭한다

HWND hWndMain = ::FindWindow("TMainForm", "A");

if( !(IsWindow( hWndMain)) )
   return  FALSE; // 에러처리등..

HWND hWndPannel = ::GetWindow( hWndMain, GW_CHILD);

if( !(IsWindow( hWndPannel)) )
   return FALSE; // 에러처리등..

HWND hWndButton = ::FindWindowEx( hWndPannel, NULL, "TButton", "Start");

if( !(IsWindow( hWndButton)) )
   return FALSE; // 에러처리등..

::SendMessage(hWndPannel, WM_COMMAND, NULL, MAKELONG(hWndButton, BN_CLICKED));

//***********************************************************************************/

버튼정도는 크게 어렵지 않습니다. 다만 다른 복잡한 컨트롤을 세부적으로 제어할려면 내부동작을 깊게 알아야겠지요.

저런식으로 원하는 컨트롤의 핸들을 구한뒤 SendMessage나 PostMessage로 메시지를 보내면 되더군요. 저건 빌더의 TMainForm으로 만든 윈도우의 TPannel에 올려진 버튼을 클릭하는 코드입니다.

VS .Net으로 만든 윈도우의 버튼을 클릭할려면 저런식으로 MAKELONG이 아닌 고정된 내부리소스 ID를 알아내서 그 ID를 넣어줘야합니다. 리소스 ID는 .Net의 Spy++같은 툴로 알아낼수 있습니다.

코드는 Win32 API로 되어있지만 빌더에도 적용가능하다고 생각합니다.

김용수 님이 쓰신 글 :
: 안녕하세요. 급한 질문이 있어 오랜만에 글쓰기를 합니다.
: 얼마되지 않는 Builder 사용자이지만 이 홈페이지를 통해 희망을 가지고
: 즐거운 프로그램하고 있습니다.
:
: 다름이 아니오라
: A 라는 프로그램이 있고 유저가 직접 이 프로그램에서
: A-1이라는 버튼을 눌러서 어떤 일을 한다고 할때
:
: B 라는 프로그램을 작성하여 유저가 직접 A-1 버튼을
: 누르는 것을 B 프로그램으로 제어하고 싶습니다.
:
: 알고있는 방법은 B라는 프로그램을 윈도우즈 배치 파일과 같은
: 것으로 일괄처리하도록 하는 방법이 있지만, 이방법 말고
:
: B를 C++ Builder로 작성하여 할 수 있는 방법이 있는지요?
: 있다면 예제를 볼 수 있을까요?

+ -

관련 글 리스트
44768 다른 프로그램 제어 방법 문의 김용수 1216 2006/05/08
44775     Re:다른 프로그램 제어 방법 문의 istree 2791 2006/05/08
44769     Re:다른 프로그램 제어 방법 문의 둘리 1576 2006/05/08
44774         Re:Re:다른 프로그램 제어 방법 문의 김용수 1365 2006/05/08
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.