Q&A

  • FindVCLWindow로 다른 App.을 조사할 순 없는겁니까?
이곳 게시판에 첨부를 할 수 없어서 다 보여드릴 수는 없지만,

델파이로 만들어진 어플리케이션의 어떤 폼을 마우스로 클릭하면

그 폼의 ClassName, 또 그 폼의 Parent의 ClassName, Parent의 Caption을

보여주는 프로그램을 짜보려고 이틀동안 밤새 두드려봤습니다.



별의 별 방법을 다 써보다 마우스 훅킹(Mouse Hook)과 메모리 맵드 파일을 이용해서

결국은 김영대님의 키보드 훅킹을 거의 인용해서 만들었습니다.



왜 훅킹을 쓰게 되었냐면 아시다시피 다른 어플리케이션을 클릭하면

클릭한 순간 딱 한번 Button Down 메시지를 받고 Capture도 풀려버리기 때문에

그 이후에는 제 어플리케이션쪽으로 더 이상 메시지가 오지 않기 때문입니다.



그래서 결국 훅킹 자체는 성공해서 어떤 어플리케이션에 마우스 클릭을 하든지

클릭한 스크린 좌표가 제 어플리케이션상의 Button의 Keydown 핸들러로 오게 하는데는

성공했습니다.



그런데 그 좌표를 가지고 FindVCLWindow를 하니까 nil을 리턴하는 겁니다!!!

그래서 결국은 제 어플리케이션 내부에 있는 윈도우들만 가능하더군요...

어떻게 하면 좋겠습니까? T.T



추적해보니까 다른 부분은 문제없이 매끈하게 잘 돌아가는데...

아마도 FindVCLWindow 자체가 원래 그렇게밖에 안되든지,

아니면 MouseProc에서 PostMessage(*제 어플의 버튼 핸들*,

WM_KEYDOWN, 0, 0);

(요렇게 하고 또 WM_KEYUP도 보냈음)

둘 중의 하나가 문제인 것 같은데요...



제가 글 솜씨가 엉망이라 너무 길고 지저분하지만... 도와주시면 감사하겠습니다.

제발 좀 도와주세요 T.T

1  COMMENTS
  • Profile
    소지영 2000.04.03 07:09
    안녕하세요. 소지영 입니다.



    델파이코리아(http://www.delphikorea.com)의 Q&A에 답변해 놓았습니다.

    집이 아니라 델파이가 없어서리 소스는 보지 못했구요, 아깝더라두 전부 제쳐두고 WindowFromPoint를 사용하면 원하시는 결괄르 얻으실수 있습니다.

    델코에서 답변 하고보니 발빠른 '유수'님께서 예제까징 올려 놓으셨네요 ^^.

    빠르기도 하셔라~~~



    스파이 같은거 맹그십니까?

    (다 맹글어 지면 지도 한카피 부탁... ^^;)



    -공짜를 욕심내는 지영이가..-





    김일영 wrote:

    > 이곳 게시판에 첨부를 할 수 없어서 다 보여드릴 수는 없지만,

    > 델파이로 만들어진 어플리케이션의 어떤 폼을 마우스로 클릭하면

    > 그 폼의 ClassName, 또 그 폼의 Parent의 ClassName, Parent의 Caption을

    > 보여주는 프로그램을 짜보려고 이틀동안 밤새 두드려봤습니다.

    >

    > 별의 별 방법을 다 써보다 마우스 훅킹(Mouse Hook)과 메모리 맵드 파일을 이용해서

    > 결국은 김영대님의 키보드 훅킹을 거의 인용해서 만들었습니다.

    >

    > 왜 훅킹을 쓰게 되었냐면 아시다시피 다른 어플리케이션을 클릭하면

    > 클릭한 순간 딱 한번 Button Down 메시지를 받고 Capture도 풀려버리기 때문에

    > 그 이후에는 제 어플리케이션쪽으로 더 이상 메시지가 오지 않기 때문입니다.

    >

    > 그래서 결국 훅킹 자체는 성공해서 어떤 어플리케이션에 마우스 클릭을 하든지

    > 클릭한 스크린 좌표가 제 어플리케이션상의 Button의 Keydown 핸들러로 오게 하는데는

    > 성공했습니다.

    >

    > 그런데 그 좌표를 가지고 FindVCLWindow를 하니까 nil을 리턴하는 겁니다!!!

    > 그래서 결국은 제 어플리케이션 내부에 있는 윈도우들만 가능하더군요...

    > 어떻게 하면 좋겠습니까? T.T

    >

    > 추적해보니까 다른 부분은 문제없이 매끈하게 잘 돌아가는데...

    > 아마도 FindVCLWindow 자체가 원래 그렇게밖에 안되든지,

    > 아니면 MouseProc에서 PostMessage(*제 어플의 버튼 핸들*,

    > WM_KEYDOWN, 0, 0);

    > (요렇게 하고 또 WM_KEYUP도 보냈음)

    > 둘 중의 하나가 문제인 것 같은데요...

    >

    > 제가 글 솜씨가 엉망이라 너무 길고 지저분하지만... 도와주시면 감사하겠습니다.

    > 제발 좀 도와주세요 T.T

    • 초보자
    • 2000.04.03 07:00
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 어린왕자
      2000.04.04 04:38
      초보자 wrote: > 1+(1+1/2)+(1+1/2+1/3)+(1+1/2+1/3....1/n) > 이거.. > 어케 하나여? > 꼭 알켜 주세...
    • 최용일
      2000.04.03 18:54
      안녕하세요. 최용일입니다. 흠.... 여기는 학교에서 내준 숙제하는 곳이 아닌데요. 다음부터 이런건 ...
    • Musa L.
    • 2000.04.03 05:10
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 차카게살자
      2000.04.04 02:17
      Musa L. wrote: > 고수님들께 공부를 시작하기 전에 원초적인 것을 묻자옵니다. > > 책을 보았더니 ...
    • 홍세비
      2000.04.03 05:43
      Musa L. wrote: > 고수님들께 공부를 시작하기 전에 원초적인 것을 묻자옵니다. > > 책을 보았더니 ...
    • 김일영
    • 2000.04.03 03:53
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 소지영
      2000.04.03 07:09
      안녕하세요. 소지영 입니다. 델파이코리아(http://www.delphikorea.com)의 Q&A에 답변해 놓았습니다. ...
    • 류종택
      2000.04.02 13:18
      시작프로그램 폴더 말고.. 래지스트리를 이용하는 방법도 있습니다.. 아래를 참고하세요.. From 류....
    • 이용현
      2000.04.02 14:39
      많은 도움이 댔어요 감사합니다... 감사합니다.. 류종택 wrote: > 시작프로그램 폴더 말고.. > 래지...
    • 최용일
      2000.04.02 09:46
      안녕하세요. 최용일입니다. 윈도우 시작 프로그램 메뉴에 있는 항목들은 모두 바로가기 파일들입니다. ...
    • 이용현
      2000.04.02 14:39
      많은 도움이 댔어요 감사합니다... 감사합니다.. 최용일 wrote: > 안녕하세요. 최용일입니다. > ...
    • 김동길
    • 2000.04.02 07:52
    • 1 COMMENTS
    • /
    • 0 LIKES
    • HART
      2000.04.12 21:57
      저기 혹시 imemode가 imDisable인 상태가 아닐까 하는데.. 이 상태가 되면 영문만 입력됩니다. 그리고 중용...
    • 나요
    • 2000.04.02 07:03
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 송성준
    • 2000.04.02 05:26
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 갱수
      2000.04.02 06:49
      송성준 wrote: > 팁에서 갱수님의 자세한 파일업로드 부분 잘보았습니다. > > 그런데 48k바이트 이상이...
    • 김수보
      2000.04.03 19:58
      아마도 100% 메모리 핸들링에러입니다. 즉 A.Create로 실행시에 메모리에 컨트롤을 생성시킨 경우 반드시...
    • 윤진석
    • 2000.04.02 03:20
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2000.04.02 03:46
      안녕하세요. 최용일입니다. DB와는 별 상관이 없는데요. 그냥 동적으로 생성해서 붙여주시면 됩니다. ...
    • 김민석
      2000.04.02 00:53
      한개의 변수를 이용해서 오늘 날짜와 시간을 구할 수 있습니다. 코딩은 다음과 같습니다. procedure ...
    • 구창민
      2000.04.02 00:51
      이수정 wrote: > 안녕하세요... > > DateTimePicker 라는 컴포넌트를 이용해서 날짜와 시간을 구할수는...
    • 이현우
    • 2000.04.01 23:21
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2000.04.01 23:28
    • 이현우
      2000.04.01 23:37
    • 최용일
      2000.04.01 23:47
    • 이현우
      2000.04.02 00:02
    • 최용일
      2000.04.03 21:11
    • 최용일
      2000.04.01 23:21
      안녕하세요. 최용일입니다 익스플로러에 보시면 보기메뉴에 인코딩이란 메뉴가 있습니다. 여기에서 ...
    • 이현우
      2000.04.01 23:43
      답변주셔서 감사합니다 asp 에서 isapi dll로 값이 넘어가고 이곳에서 일를 처리하고 일반 app로넘어가 ...
    • 이종행
    • 2000.04.01 22:56
    • 1 COMMENTS
    • /
    • 0 LIKES
    • Qtecman@chullian.net
      2000.04.03 00:44
      장진웅이라고 합니다... FA에 대한 프로토콜 문제라면 ..고민이 많으시겠군요.. 먼저 미쓰비시 기종과 골...
    • 혜진이
    • 2000.04.01 22:16
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2000.04.01 22:33
      안녕하세요. 최용일입니다. TJpegImage컴포넌트를 사용해보세요. 컴포넌트 팔레트에는 없지만 델파이 ...
    • 오이군
    • 2000.04.01 21:14
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 김형선
      2000.04.01 22:01
      오이군 wrote: > 비베의Doevents나 파워빌더의 yield와 같이... > 다른 프로세스에게 시간을 주기위한 함...
    • 이미나
      2000.04.18 02:22
      김형선 wrote: > 오이군 wrote: > > 비베의Doevents나 파워빌더의 yield와 같이... > > 다른 프로세스에...
    • 이광민
    • 2000.04.01 20:39
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 모승열
      2000.04.02 03:05
      Re : 안녕하세요 델파이에서 따옴표 표시는 ''두개로 합니다. 그러니까 안에 따옴표를 넣고 싶으면 ' '' ...