Q&A

  • findWindow를 이용하여 활성화된 창찾는 것에 관한 질문 - 부탁드립니다.
안녕하세요.
제가 지금 외부 프로그램을 실행시켜 그것의 단계를 넘기는 과정을 자동으로 할 수 있도록 할 수 있는 프로그램을 구현하고 있습니다.
그런데 도무지 어떻게 풀어나가야 할지를 모르겠습니다.

다음의 두 질문에 관해서 답변 좀 부탁드립니다.
외부프로그램(드라이버 설치파일)을 실행시키면 창이 하나가 나오게 됩니다.
첫번째는 그 실행되어 있는 파일의 활성화 상태를 알고 싶습니다.
두번째는 그런 후에 그 창에서 버튼의 값을 어떻게 가져와야 할지 모르겠습니다.

위의 값을 가지고 다음 단계를 넘기려 합니다.
핸들을 가지고 넘기려 했으나 spy++와 김도완님이 팁란에 올려주신 프로그램을 가지고 두대의 컴퓨터에서 핸들값을 조사해보니 각각의 값이 다르게 나오더군요. 하얀 전쟁님께서도 그값을 저장하는 것을 값이 달라진다고 하시고요. ㅠ.ㅠ

그래서 생각해낸것이 각 클래스에 해당하는 텍스트를 비교하여 단계를 넘기는 것입니다.
하지만 아직 구체화 된것이 없어서 막막하기만 하군요.
우선 위의 두가지 값을 구하면 활성화된 창의 텍스트를 가지고 올 수 있으면 그 값을 비교하고 그 활성화된 창의 위에 있는 버튼의 핸들 값과 텍스트 값을 가져와 버튼을 클릭하는 효과를 낼 수 있는 다음과 같은 구문으로 진행을 해보려 합니다.

SendMessage(핸들,WM_LBUTTONDOWN,X,Y);
SendMessage(핸들,WM_LBUTTONUP,X,Y);

위의 명령에 핸들값을 넘기면 되지 않을까 하는 생각입니다.
좌표를 구해서 하는 방법으로도 접근을 하였지만 여러가지 제약사항이 발생하네요.

부디 제 질문에 답변 부탁드리겠습니다.
답변 기다리고 있겠습니다.

p.s : 지금 제가 생각하고 있는 내용이 너무 황당하고 어리석은 생각이라고 생각하시는 분은 거침없는 질타 부탁드립니다. 그리고 더 좋은 방법을 제시하여 주셨으면 합니다. 부탁드립니다. 좀 급해서 그래요. 그럼 이만...
2  COMMENTS
  • Profile
    최용일 2004.04.07 02:59
    안녕하세요. 최용일입니다.

    SPY를 이용해보셨다면... 거기에 나오는 Window Caption과 Class Name을 가지고 FindWindow를 이용하시면 쉽게 원하시는 창을 찾으실 수 있습니다.
    굳이 좌표를 이용하실 필요는 없을것 같네요...

    차일드윈도우는 FindWindowEx로 찾으실 수 있구요...

    ^^ 항상 즐코하세요...

  • Profile
    덜렁이 2004.04.07 04:23