2014-10-01 7 views
1

C 및 Xlib을 사용하여 응용 프로그램을 작성 중이며 입력 요소 위젯 (텍스트 상자, 단추 등)의 목록을 가져올 수 있는지 알고 싶습니다.창 입력 요소 얻기

나는 XQueryTree 기능을 사용하여 윈도우의 목록을 검색하고 있습니다. 달성하고자하는 것은 특정 윈도우 내에서 특정 텍스트 상자 또는 버튼에 포커스를 설정할 수있게하는 것입니다.

나는이 툴킷 (GTK, QT, ..)에 의해 처리됩니다 알고 있지만 나는 프로그래머 경우이 정보가 X 서버에 제공되는 모든 기회를 궁금하네요.

+1

당신은 "입력"요소가 다른 프로세스 창에서 위젯의 목록을 얻으려면? –

+0

위젯이 이름을 짓는 더 좋은 방법이었을 것입니다. 그래, 그게 기본적이야. 나는 이것을 성취하는 방법이나 그것이 가능할 지 모른다. 어쩌면 다른 라이브러리를 사용해야합니까? –

+1

문제의 창에서 포커스를받을 수 있는지 확인할 수는 있지만 원하는 것이 무엇인지 테스트하기에 충분하지는 않습니다. 나는 네가 원하는 것을 찾을 수 있는지 모른다. (하지만 이걸 가지고 놀았 기 때문에 오랜 시간이 걸렸다.) 직접 참여한 툴킷을 사용하면 직접 할 수 있다는 것을 알지 못합니다 (다른 응용 프로그램의 창/위젯을 이런 방식으로 사용할 수 있도록 설정할 수는 없습니다). –

답변

1

그래서, ATK로 찾고 있었어요 그리고 내가 무엇을해야 할 것 같다. 다른 사람이 궁금 들어

는 GNOME에 의해 개발 된 접근성 툴킷 (ATK)은 DBUS를 통해 실행중인 응용 프로그램에 대한 많은 정보를 제공합니다.

액세스 가능 항목의 트리 (응용 프로그램의 GUI 부분)를 트래버스하고 이름, 상태 (예 : "사용 가능", "표시 가능", "편집 가능", "포커스 가능"등)와 관련된 정보를 가져올 수 있습니다. ..) 및 역할 (예 : "응용 프로그램", "프레임", "패널", "버튼", "메뉴 막대"...). 또한 포커스를 조작하고 동작을 트리거 할 수도 있습니다 (예 : 버튼의 클릭을 시뮬레이션).

는 C의 개발을 위해, 나는 libatspi 라이브러리를 사용하고있다.