박종훈 2007-07-15 PM 5:50:59 |
|
|
|
네^^ 한꺼번에 닫을 수 있습니다^^
버전에 따라 다른지는 모르겠지만,
엑셀 2003의 경우, 창의 클래스명이 XLMAIN 였고,
한글 2002의 경우, 창의 클래스명이 HwpMainFrameWnd 였습니다.
물론 버전에 따라 다르겠지만, 그냥 사용하시는 프로그램의 창 클래스명을 얻으시면 됩니다.
[기타자료실에서, Spy++ 게시물이 나오는데요, 그것을 이용하시면 클래스명을 얻으실수 있습니다.]
사용방법은, 해당 프로그램을 실행하신 뒤, 툴바에 보시면 쌍안경처럼 생긴 아이콘을 클릭하시면 창이 하나 나오는데요, 그 창에 보시면 [찾기도구] 라고 되어있고, 가운데 저격[십자가;;]표시가 되어 있는 아이콘이 있으실 겁니다. 그 아이콘을 드래그&드롭 하셔서, 찾고자 하는 창에 드래그 하시면 [클래스] 라는 부분에 클래스명이 나오게 됩니다.
암튼, 클래스명을 얻었으니, FindWindow라는 API함수를 사용하시면 그냥 해결될 듯합니다.
원리는, 아래와 같습니다.
1. FindWindow라는 API함수를 사용해서 핸들을 얻어냅니다. [반복으로 계속 찾아냅니다.]
2. 찾아낸 핸들에게 SendMessage라는 함수를 이용해서, WM_CLOSE 메시지를 보내줍니다.
3. 그러면, 창 닫기를 시도합니다. 만일, 수정된 사항이 없어서 종료된다면 그냥 된것이고, 수정된 사항이 있다만, 저장여부 창을 띄어주겠죠.
* WM_CLOSE는, 창을 닫으라는 뜻입니다.
이렇게, 원리를 알려드렸고요, 궁금한 점이 있다면 더 이야기 해주세요~
[저는 여기까지만 이야기 하겠습니다. 더 질문이 있으시다면 질문해주세요~] |
|