Q&A

  • 응용프로그램 실행후 메뉴를 제어해서 특정파일을 실행시키는 방법?
아래한글과 같은 응용프로그램을 실행시킨후 파일열기를 하였습니다.(SPY를 통해서 확인하였음)
그런데 파일이름을 주고 열기 버튼을 실행해야 하는데 그 부분을 모르겠네요..
작성한 소스는

hAppId := FindWindow(nil, pchar('빈 문서 1 - 한글과컴퓨터 한글 '));  <- 한글의 핸들가져오기
SendMessage(hAppId, WM_COMMAND, 53280, 0);  <- 파일열기 실행
hAppChildId := FindWindowEx(hAppId, 0, PChar('HNC_DIALOG'), nil);  <- 파일열기창의 핸들가져오기
SendMessage(hAppChildId, WM_SETTEXT, 0, LParam(pChar('C:\aaa.hwp')));  <- 파일이름에 aaa.hwp입력

위와 같은 의도로 한글을 실행시키고 파일열기를 해서 C:\aaa.hwp를 불러오고 싶은데 안되네요

질문>
1) 2번째라인에서 sendmessage로 파일열기를하면 ModalForm으로 열려서 창을 닫아야 다음 라인으로 넘어가 3번째 라인이 의미없어짐. 따라서 2번째 라인의 sendmessage시에 'C:\aaa.hwp'를 넘겨주는 방법이 있는지?
2) FindWindowEx를 써서 파일열기창의 Handle을 가져와야 하는게 하니라 파일열기창의 '파일이름'이라는 Edit의 Handle을 가져오는 방법?(결국은 FindWindowEx 사용법을 잘 모른다는 의미임..)
1  COMMENTS
  • Profile
    구창민 2007.07.25 23:41
    안녕하세요...

    이곳에 Hwp 가 깔려있지 않아 테스트를 못해보는데,

    커맨드라인 실행은 안되던가요?

    예를 들면, MS-Word 는

    "C:\Program Files\Microsoft Office\OFFICE11\WINWORD.EXE" "C:\a.txt"

    형태를 실행시키면 a.txt 가 불려진 워드가 실행되듯이 말이예요..


    그게 안되다면, 결국 편법을 쓸수 밖에 없을듯 한데..

    Keybd_event 같은 API 함수로 메뉴단축키를 (예를 들면 Alt + f) 등을 누르고

    열기 대화상자의 파일명입력되는 Edit 의 핸들을 알아내고 그곳에 문자를 강제 입력하고.. 등..;;

    우선 커맨드라인 명령어를 한번 실험해보세요..

    그럼 즐거운 프로그래밍 하시길~