LINUX.ORG.RU

Получить набор точек окна другого процесса


0

1

Добрый день! У меня стоит задача распознать некоторую часть окна чужого процесса (например, другое окно, свернутое или хотя бы неактивное). Немного знаю qt и c#. Подскажите пожалуйста, в какую сторону копать? Это возможно только с помощью winAPI или можно это сделать как-то кроссплатформенно? Спасибо

Что значит «распознать некоторую часть?»

Если надо получить изображение конкретного окна, смотрите исходники scrot (самый интересный ключик -s). Но есть одно но - без композитинга получить актуальные изображения свернутых окон не выйдет.

Немного знаю qt и c#


\begin{troll}
Вот и выросло поколение, которое не знает плюсов, но знает куте!
\end{troll}

yoghurt ★★★★★ ()
Ответ на: комментарий от yoghurt

Ну реально на С в универе только писал, а сейчас когда понадобилось - понял что многое забыл, но при использовании qt много и не надо, поэтому так и написал :)

Madaro ()
Ответ на: комментарий от yoghurt

Я всегда говорил что Qt и C++ это разные языки. В Qt есть сигналы и слоты, интроспекция, а в C++ есть шаблоны и ручное освобождение памяти.

KblCb ★★★★★ ()

Это вообще говоря не тривиальная задача. Такие вещи знает только WM, но линуксовые NETWM'ы несколько отличаются от winAPI.

KblCb ★★★★★ ()
Ответ на: комментарий от KblCb

>Такие вещи знает только WM
Ничего он не знает о свёрнутых окнах. Хотя может развернуть свёрнутое окно где-нибудь подальше от видимой области и послать Expose.

x3al ★★★★★ ()
Ответ на: комментарий от KblCb

Такие вещи знает только WM

Причем композитные.

Kosyak ★★★★ ()
Ответ на: комментарий от KblCb

> В Qt есть сигналы и слоты

boost::signals, boost::signals2 тебе в помощь, Qt-шные сигналы/слоты и рядом не валялись по выразительности и мощности концепции.

интроспекция


Нафиг она нужна? В реальных задачах?

one_more_hokum ★★★ ()
Ответ на: комментарий от one_more_hokum

Qt-шные сигналы/слоты ощутимо отличаются от всего что написано при помощи шаблонов C++ и позволяют делать странное (и не нужное).

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

Вообще говоря, я ни коим образом не утверждал, что «язык» Qt лучше чем C++. Я имел в виду что если ты пишешь на одном языке, то не пишешь на другом (Q_OBJECT не даёт использовать шаблоны), только и всего.

KblCb ★★★★★ ()
Ответ на: комментарий от one_more_hokum

Угу. У меня был виджет позволявший двумя spinbox'ами задавать интервал. Очень хотелось передавать тип spinbox'а параметром. Ну и шаблонных сигнало-слотов не хватает.

KblCb ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.