16) 실습: 테이블 정보 탐색기

참고: TablePattern과 TableItemPattern

이번에는 TablePattern을 이용하여 실행하고 있는 다른 프로그램의 테이블 정보를 얻어오는 프로그램을 작성하는 실습을 진행할게요.

 

실습에서는 간단한 회원 정보를 관리하는 타겟 데모를 만들고 테이블 정보를 탐색하는 탐색기 프로그램을 만듭시다.

[그림 5.7] 시연화면
[그림 5.7] 시연화면

먼저 데모 타겟을 Windows Forms 응용 프로그램 프로젝트로 생성하세요. 그리고 컨트롤을 배치합니다.

 

[그림 5.8] 데모 타켓 컨트롤 배치
[그림 5.8] 데모 타켓 컨트롤 배치
번호 컨트롤 타입 컨트롤 명 설명
1 ListView lv_member 회원 정보 리스트 뷰
2 ColumnHeader ch_id 아이디 컬럼 헤더
3 ColumnHeader ch_name 이름 컬럼 헤더
4 TextBox tbox_id 아이디 입력 텍스트 박스
5 TextBox tbox_name 이름 입력 텍스트 박스
6 Button btn_add 회원 추가 버튼

[표 5.22] Form1의 컨트롤 배치

 

회원 추가 버튼 클릭 이벤트 핸들러를 추가하여 입력 텍스트 상자의 정보로 회원 리스트 뷰에 항목 추가하는 코드를 작성하세요. 데모 타겟은 실습을 위한 더미 프로젝트이므로 다른 기능은 구현하지 않기로 합시다.

 

[소스 5.5] 데모 타겟의 Form1.cs

 

테이블 정보 탐색기 프로젝트를 추가하세요. 그리고 컨트롤을 배치합시다.

 

[그림 5.9] 테이블 정보 탐색기 컨트롤 배치
[그림 5.9] 테이블 정보 탐색기 컨트롤 배치
번호 컨트롤 타입 컨트롤 명 설명
1 Button btn_target_start 타켓 프로그램 실행 버튼
2 Label lb_msg 메시지 표시
3 Label lb_countdown 대기 시간 표시
4 NumericUpdown nud_col 행 선택
5 NumericUpdown nud_row 열 선택
6 Label lb_header 헤더 정보 표시
7 Label lb_shell 셀 정보 표시
8 Button btn_refresh 행, 열 정보 새로 고침
9 Button btn_header 헤더 정보 가져오기
10 Button btn_shell 셀 내용 가져오기(헤더 정보 포함)

[표 5.23] 테이블 정보 탐색기의 Form1 컨트롤 배치

 

멤버 필드로 데모 타겟 프로그램의 실행 파일명을 설정합니다.

데모 타겟 프로그램이 실행하여 Main 윈도우가 뜨고 난 후에 자동화 요소를 수집할 것입니다. 차후에는 자동화 이벤트를 이용하지만 여기에서는 의도적으로 10초간 대기하기로 할게요. 이를 위해 카운트 다운하기 위한 멤버 필드를 선언하고 10으로 초기화합니다.

타겟 프로그램의 프로세스 개체를 참조할 멤버 필드를 선언합니다.

제어할 컨트롤의 RangeValuePattern 개체를 참조할 멤버 필드를 선언합니다.

데모 타겟 프로그램 실행 버튼의 클릭 이벤트 핸들러를 추가합시다.

타이머 이벤트 핸드러를 등록합니다.

SearchTablePattern 을 탐색하는 메서드를 정의합시다.

 

새로 고침 버튼 클릭 이벤트 핸들러를 등록하여 마찬가지로 테이블 패턴의 정보를 다시 구하여 컨트롤의 속성을 설정합니다. 이 부분은 GetTPInfo 메서드로 구현할 부분이므로 단순 호출 구문을 작성합니다.

 

테이블 패턴의 정보를 구하여 컨트롤 속성을 설정하는 GetTPInfo 메서드를 구현합시다.

헤더 버튼 클릭 이벤트 핸들러를 추가합니다.

 

행의 헤더 정보를 얻어와서 컨트롤의 속성을 설정하는 GetHeaderInfo 메서드를 구현합시다.

 

셀 정보 가져오기 버튼 클릭 이벤트 핸들러를 등록하세요.

 

[소스 5.6] 테이블 정보 탐색기의 Form1.cs