2010-03-19 4 views
2

다른 델파이 프로그램에서 데이터 필드를 읽어야하는 애플리케이션을 작성 중이고 타사 프로그램의 소스 코드에 액세스 할 수 없습니다. 데이터 필드에는 응용 프로그램에서 가져 오거나 만들 필요가있는 레코드에 대한 "외래 키"가 들어 있습니다.델파이, 타사 데이터 필드에서 데이터 읽기

내 프로그램에 도움이되는 지식이나 구성 요소에 대한 링크가 있으면 고맙게 생각합니다.

+1

다른 프로그램의 데이터 수신 방법은 무엇입니까? 어떻게 든 그것을 공유하고 있습니까, 아니면 주소 공간을 직접보고 내부의 기억을 이해하려고합니까? –

답변

3

다른 앱에서 텍스트 입력란을 "스크래핑 화면"으로 만들려고한다고 가정합니다. FindWindow를 사용하여 해당 창 핸들을 얻은 다음 찾고있는 컨트롤을 찾기 위해 하위 창을 파헤 게 할 수 있습니다 (WinDowse by Greatis은 수동으로 탐색 할 때 매우 유용합니다). 마지막으로 WM_GetText 메시지를 데이터가있는 컨트롤로 보냅니다. 다음은이를 수행하는 방법의 예입니다. About.Com article on digging and scraping with Internet Explorer.

편집 : D' oh! WM_GetText는 이미 windows.pas에 정의 된 GetWindowText 함수를 사용하여 VCL로 래핑됩니다. 예 :

GetWindowText(Wnd, PC, sizeof(PC)); 
+1

불행히도 문제의 컨트롤에 Windows 핸들이있는 경우에만 작동합니다. WinSpy ++ (http://www.catch22.net/software/winspy)와 같은 것을 사용하여 컨트롤에 핸들이 있는지 여부와 컨트롤의 속성이 무엇인지 조사하십시오. – skamradt

+0

핸들이 없으면 OCR로 남았습니다. –

+0

Greatis.com에 대한 링크가 끊어 졌거나 사이트가 다운 됨 (?) –