2012-11-11 5 views
2

이것은 다른 프로세스의 목록보기에서 데이터를 읽는 GUI 자동화 응용 프로그램의 일종입니다.다른 프로세스의 목록보기 데이터 읽기

목록보기 클래스는 SysListView32하고

은 일반적으로 내가 다른 프로세스 의 메모리 공간에 메모리를 할당

  • 다음 절차를 사용하여 목록보기에서 텍스트를 읽을 수 있어요 LVS_OWNERDRAWFIXED

    을 설정 한 다음 스타일이있다
  • 해당 프로세스에서 할당 된 버퍼 포인터로 텍스트를 읽으려면 listview에 메시지 보내기
  • 버퍼 읽기

listview가 ownerdrawn이 아니지만이 경우 ListView가 소유자에 의해 그려진 것처럼 보입니다. 즉, listitem에 데이터가 없습니다.

내가 토론 한 방법이나 다른 방법으로 또는 API 나 기타 방법을 연결하여 이러한 목록보기에서 텍스트를 읽을 수 있습니까?

+0

아직 완료 했습니까 ??? – Manjoor

+0

아니, 아직, 아직 고투. –

+0

나는 또한 동일한 문제에 직면하고있다. 해결 했니? –

답변

3

컨트롤은 여전히 ​​LVITEM을 목록보기에 추가해야합니다. 그러나 물론 유용한 것을 넣을 의무는 없습니다. 앱이 자체 드로잉을 수행하는 경우 null pszText 또는 iImage를 지정하면 올바르게 작동합니다. WM_DRAWITEM 메시지 처리기를 구현하고 내부 데이터를 사용하여 항목을 렌더링합니다.

데이터가 저장되는 위치를 찾는 방법은 없습니다. 은 매우이지만 HDC를 만들기 위해 코드를 삽입해야하기 때문에 자신의 WM_DRAWITEM 메시지를 위조 할 수는 있지만 바이트가 아니라 픽셀 만 가져옵니다. OCR을 사용하면 중요한 특이점 솔루션이됩니다. 현실적으로 당신은 이것에 타월을 던져야합니다.

+0

사실 저는 그것을 이해하고 있습니다. DrawText에 텍스트를 캡처 할 수있는 가능성이 있습니까? 이미 텍스트를 가져 오기 위해 원격 프로세스에 코드를 삽입 했으므로 API 후킹에 익숙하지는 않지만 거의 추가하지 않아도됩니다. 어떤 희망? –