Q&A

  • 이거 해결방법좀 알려주세요!
다른 어플리케이션의 스트링그리드나 디비그리드 캡쳐 방법 구현해야 하거든요.
단순 캡쳐는 아니구요. 예를 들어 리스트가 30개 정도 인데 보이는건 10개라면 10개만 캡쳐를 하는것이 아니라 30개 모두를 캡쳐하고 싶습니다. 어떤식으로 접근을 해야할 지 모르겠습니다. 캡쳐를 한 이미지를 다른 컴으로 전송하는 프로그램을 짜거 든요. 비베로 짠거 보것도 갖기 한데 제발 답변을....
캡쳐 말고 데이터를 가져 오면 더 좋을텐데 접근 방법이라도 알려주세요.  
제 개인적인 생각으로는
10개 캡쳐하고 다른 어플리케이션의 리스트를 다시 내려서 10개 캡쳐하고 그렇게 해서 이미지를 합칠수 있는 방법도 될까요?
1  COMMENTS
  • Profile
    바보감자 2003.06.11 21:51
    안녕하세요 언제나 초보 바보감자입니다.
    베베예문을 보셨는데..방법이 없단 말이 어떻게 나오시는지..
    머..답답하신건 알겠지만..저도그런때가있었고....
    제가 델마당에 드린 답변에도.. 제가예전에 구현했었다고..말씀 드렸는디..
    방법당연있습니다.
    그러나 쉽지는 않습니다. 훅이라는것을 공부하셔야합니다. 전 훅공부할때
    새우잠자고 공부했습니다..
    만약 그럴 여유가 없으시다면 제가 제안 한가지 하겠습니다..
    쉬운방법으로만 설명드리도록 하지요...속도느립니다 ^^;;
    그 어플리케이션안에서의 그리드위치는 고정이라는 전제조건하에
    일단 그 어플리케이션의 핸들을 잡아서 캡쳐해서 bmp를 만들어 버리세요
    그리고 그bmp 에서 그리드 부분만 짜릅니다.
    자 그후에 가지고있던 핸들로 어플리케이션의 좌표를 알아낸후.
    그곳 좌표에 + 시킵니다
    뭘 +시키냐.? 그리드의 위치를 + 시킵니다.
    정확하게는 그리드의 밑으로 스크롤하는 화살표 ..부분입니다
    이해가셨나요.. 그럼 그부분으로 마우스 이벤트를 날려서
    클릭을 10번 하게 하면 10번 내려가지요.?
    그후에 다시 어플스샷을 찍어서 짤르고..짤르고 해서 합치면 되겠네요.
    위의 방법으로 구현하는것은 질답란에 거의 대부분차지하고있는 내용들로
    충분히 카바가 될겁니다.
    하지만 자신의 경쟁력 & 실력향상과 속도를 개선하시고 싶으시면 훅공부하세요..
    접근 방법을가르쳐 드렸는데도.. 질문의 내용이 하나두 안변했네요..
    잡담식으로 가르쳐 드렸다고는하지만..

    제가 말씀 드린 훅이라는걸로 검색이라도 해보셨으면..델마당에 답변이있었을텐데요... .예제까지있는거였는데..

    프로그래머의 실력은 속도도 있고 디버그 잘하고 에러 안나고 알고리즘 많이 알고 .. 다 중요하겠지만 전 제일 중요하게 생각하는것은 몰르는것을 잘찾는 써치 기능이 뛰어난사람이라고 생각합니다.. 그것도 컴퓨터 쪽이라면 더욱더 그렇다고 봅니다 워낙 기술 싸이클이 짧기때문에...
    영어를 좀 외우고 영한 사전을 두고 자기가 원하는 내용을 못찾거나 찾는데 오래걸리는 사람보단 차라리 영어를 바로 못외워도 자기가 원하는 내용을 금방 찾을수있다면...뭐든 못하겠습니까..
    몰라서 막히는거보단 찾아가면서 천천히 짜는게 좋다고 보네요 ^^;;
    그사람이 10년후엔..  ^^ 연봉 1억은 꿈이아니겠지요..제목푭니다 ㅎㅎ..
    에혀 잡담이길어져 부렀네요..
    기분나빴다면 사과드리구요 전 그냥 답변을 드렸는데도 똑같으니까..
    예문까지 맹그러달라는 뜻으로 느껴서요..


    델마당의 하영재님의 답변을 그 ! 대 ! 로 ! 올려드립니다.
    예문 부분은 뺐으니까요 직접 델마당서 찾아보세요..
    꼭 성공 하시길 기원하겠습니다 ^^
    저두 질문만 막하던 때가 벌써 2년이 지나부렀네요..아구..아구..
    한때는 한델 믿고 몰르는것도 다한다고 했었다는..ㅡㅡ;;;
    ㅎㅎ 델피언 만세~~

    /////////////////////////////////////////////////////////////////

    우선 핸들을 안다는 전제에서 말씀하셨으니 ^^
    그런데 보이지 않게 되어있다는 말씀은... 감추어져 있다는 말씀인가요?

    다른 어플의 ListView의 데이터를 가져 오려면 조금 귀찮은 작업을 해야
    합니다. ListView_GetItemText 함수는 해당 어플의 메모리 내에서 실행
    되어야 제대로된 값을 얻을 수 있기 때문이죠.
    Wire/ReadProcessMemory 함수를 써서 해당 어플의 메모리에 대충 접근을
    할 수 있습니다만 제가 해보니 딸랑 두개의 서브 아이템만을 얻어 올 수
    있었을 뿐이었습니다. 서브 아이템이 그 이상일 경우에는 좀 곤란하다는
    결론을... ㅠ.ㅠ(제가 실수 한 것일수도 있습니다.)

    가장 좋은 방법은 해당 어플의 메모리 내에서 얻어오도록 하는것지요.
    즉 Hooking을 이용해서 가능합니다.