2012-01-13 4 views
1

타사 응용 프로그램이있어서 델파이에서 개발 한 응용 프로그램에서 사용할 수있는 일부 컨트롤의 값을 읽어야합니다. 다른 응용 프로그램은 Windows에서 실행되며 분명히 SWT 프레임 워크를 사용하여 Java로 작성됩니다. 불행히도 값을 읽어야하는 컨트롤의 (컨트롤) ID는 타사 응용 프로그램을 시작할 때마다 다릅니다. Java/SWT 프레임 워크는 애플리케이션의 UI가 생성 될 때마다 새로운 창/제어 ID를 생성하는 것으로 보입니다. 사용할 수있는 다른 식별자가 있습니까?Java/SWT 응용 프로그램의 컨트롤 ID

답변

1

Windows 속성을 사용하여 영구 ID를 가져올 수 있습니다.

nProp := GetProp(Handle, 'SWT_OBJECT_INDEX'); 

GetProp()의 반환 값은 윈도우의 ID이다

속성의 이름 SWT_OBJECT_INDEX이다. 핸들은 사용자가 제어 할 수있는 핸들입니다. 그러나 찾고있는 ID로 컨트롤을 찾으려면 모든 하위 창을 거쳐야합니다. 응용 프로그램이 업데이트되면 해당 ID가 변경 될 수 있습니다.

+0

아, 이건 빠르다 .--) 윈도우 속성을 살펴볼 것이다. ... – Clemens

+1

SWT_OBJECT_INDEX는 [SWT] (http://en.wikipedia.org/)에서 사용할 수있다. wiki/Standard_Widget_Toolkit). 스윙 GUI 요소는 원시 코드가없는 100 % Java이며 컨트롤 창 핸들은 없습니다. – mjn

관련 문제