Как мне найти окно в определенной точке на экране для скриншота / записи экрана? - PullRequest
2 голосов
/ 20 мая 2010

Я ищу способ сделать то же, что и в WindowFromPoint и GetWindowRect, в Carbon / Cocoa и X11.

WindowFromPoint - http://msdn.microsoft.com/en-us/library/ms633558%28VS.85%29.aspx GetWindowRect - http://msdn.microsoft.com/en-us/library/ms633519%28VS.85%29.aspx

Ответы [ 2 ]

4 голосов
/ 21 мая 2010

Я занимаюсь разработкой приложений для создания снимков экрана и записи экрана…

Использование Служб кварцевых окон .

Я хочу… определитьограничивающий прямоугольник окна, а затем используйте координаты окна, чтобы захватить растровое изображение этой области экрана…

Определенно использовать службы кварцевых окон.

Кстати, одна из его особенностей заключается в том, что вы можете захватывать окно изолированно, без чего-либо, что может быть перед ним или позади него.Вам не нужно получать его прямоугольник при этом.

… и сохранять его в файл…

Использовать CGImageDestination .

… или закодируйте его в видеопоток.

В этой части я не уверен. Пример кода по данному вопросу (который, как следует из названия, использует OpenGL для фактической записи), использует 32-разрядный API-интерфейс QuickTime C, а не 64-разрядный совместимый QuickTime Kit, для записифильм.

1 голос
/ 31 декабря 2014

Чтобы ответить на часть X11 этого вопроса: вы можете использовать XQueryPointer child_return для функций, аналогичных WindowFromPont. XGetGeometry должен получить информацию GetWindowRect.

...