2013-07-08 1 views
1

XlibXrandr과 같은 X11 관련 라이브러리를 사용하여 코드를 작성하려고합니다.바탕 화면에 표시되거나 숨겨진 모든 창 목록을 가져와야합니다.

처음에는 Xlib에서 모니터로 새로 고침 빈도를 검색하는 것과 같은 실제 기본 기능을 완전히 포함 할 것으로 예상했으나 나중에는 Xrandr이 필요하다는 것을 알았습니다.

이제 데스크톱에 표시되거나 숨겨진 모든 창 목록을 가져올 필요가 있습니다. Gnome/KDE/XFCE ... 확장을 사용하는 것에 대해 생각하지 않습니다. 그 확장은 X11 용 데코레이터입니다. X 서버에서 열려있는 창을 열거 할 수있는 함수 또는 매크로를 실제로 찾을 수 없습니다. 또한 포커스가있는 창의 ID/이름을 가져와야합니다.

내 질문은 : Xlib만이이 작업을 수행 할 수 있습니까? Xlib이 채택한 용어 때문에이 함수가 존재할 수도 있다는 의문을 가지고 있습니다.

당신은 그래서 XQueryTree

XQueryTree - query window tree information 

Status XQueryTree(Display *display, Window w, Window *root_return, Window *parent_return, Window **children_return, unsigned int *nchildren_return); 

와 자식 윈도우의 목록을 얻을 수

+0

필자가 입력을 얻었지만 초점 (창과 관련하여)이 아니라 커서의 좌표를 얻는 방법을 알았지 만 창에 정보가 없으면 쓸모가 없습니다. – user2485710

+0

'XGetInputFocus'. –

+0

@ n.m. 질문 : DRI 라이브러리를 사용하는 것이 좋습니다. 나는 그것을 사용하는 동안 xlib가 최신이고 가장 훌륭하지 않다는 것을 알아 차렸다. 많은 기능이 부족하다. – user2485710

답변

2

는 전체 목록을 얻으려면, 당신은 루트 창에서 시작하여 반복적으로 각 윈도우의 모든 어린이를 호출해야합니다 .

+0

오케이, 가능한 한 빨리 시도하겠습니다.하지만 사용자의 초점은 무엇입니까? – user2485710

+0

죄송합니다. away - XGetInputFocus as n.m. 말했다 – parkydr