2014-07-15 3 views
1

제목 : 다른 응용 프로그램의 윈도우에서 StringGrid 내용을 읽으려면 어떻게해야합니까? 나는 StringGrid의 핸들다른 응용 프로그램의 Stringgrid 콘텐츠

+1

문자열 격자는 Windows 컨트롤이 아니므로 Windows 메시징을 잊어 버리십시오. – TLama

+0

두 응용 프로그램 모두의 소스 코드에 액세스 할 수 있습니까? 확실히 문자열 그리드인지 아니면 다른 응용 프로그램이 Delphi로 작성되었는지 알고 있습니까? –

+0

다른 애플리케이션의 소스 코드에 액세스 할 수 없습니다. 하지만, 다른 응용 프로그램은 델파이 5.0로 작성되었습니다. 알고 싶습니다. –

답변

1

델파이 문자열 그리드를 얻을 수

순수한 VCL 컨트롤입니다. 창 메시지를 사용하여 내용을 읽을 수는 없습니다. Embarcadero는 컨트롤을 액세스 할 수 없게 만들었 기 때문에 자동화 API를 사용할 수 없습니다. 덧붙여 말하자면, 그들에게 수치 스럽습니다.

이렇게하는 유일한 방법은 총 해킹입니다. 컨트롤의 메모리 레이아웃을 알고 있다면 디버거와 같은 방식으로 메모리를 읽을 수 있습니다. ReadProcessMemory에 전화 걸기. 그러나 이것은 매우 지저분하고 성취하기가 어렵습니다.

간단한 접근 방식은 DLL을 대상 프로세스에 삽입하는 것입니다. DLL이 대상 프로세스와 동일한 버전의 Delphi로 작성되는 한 그리드의 내용을 읽을 수있는 가능성이 있습니다. 그런 다음 IPC를 사용하여 정보를 다른 프로그램으로 다시 보낼 수 있습니다.

이러한 솔루션 중 어느 것도 원격으로 매력적이지 않습니다. 당신이 이것을 할 수있는 더 깨끗한 방법을 찾을 수 있다면,이 목표 프로세스를 완전히 피할 수 있다면, 그것을 강하게 고려해야합니다.

+0

답변 해 주셔서 감사합니다. –

+0

도움이 더 필요하십니까? –

+0

예를 들어 주시겠습니까? –

관련 문제