Уведомления

Группа в Telegram: @pythonsu

#1 Июль 21, 2010 08:23:16

aaleksander
От:
Зарегистрирован: 2009-12-22
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

HUD на питоне.

Доброе утро, уважаемое сообщество.
Понадобилось сделать такую хитрую штуку.
ОС - Windows
Программа должна перебрать все открытые окна в системе, найти нужные (по заголовку, например) и начать с ними работать:
Нужно взять “снимок” каждого окна, проанализировать его и подрисовать несколько элементов (линии и текст).

Вот сижу и думаю, как бы такое сделать?

Никто таким не занимался?



Офлайн

#2 Июль 21, 2010 09:48:06

nerijus
От:
Зарегистрирован: 2010-06-03
Сообщения: 93
Репутация: +  1  -
Профиль   Отправить e-mail  

HUD на питоне.

aaleksander
Вот сижу и думаю, как бы такое сделать?
Для получения окон EnumWindows, EnumChildWindows. А дальше уже сложнее. Взять снимок окна, если оно не целиком видно на десктопе - посылать wm_printclient (но это не всегда 100% работает), Подрисовывать можешь с BitBlt на device context окна, но как только оно получит следующий wm_paint, опять нарисует все как было. Можно ставить hook на wm_paint или если это стандартний контрол типа edit, listbox, button и т.д. можно внедрить этот контрол и поставить на чужом окне. При этом пользоваться CreateRemoteThread и т.д. Плюс конечно нужны привилегии админа и все такое. С виду может и кажется несложно, но реально много работы и большие шансы что не все не будет работать как положено.

ЗЫ: и реализовать все это луче с C, а не с Python.

aaleksander
Никто таким не занимался?
Я mirror драйвер написал, но и это мне кажется гораздо легче, нежели твоя задумка. Но я не говорю что брось все это. Если есть желание и МНОГО терпения, тогда задача конечно интересная.



Офлайн

#3 Июль 21, 2010 09:57:19

aaleksander
От:
Зарегистрирован: 2009-12-22
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

HUD на питоне.

Вот только что появилась идея сделать прозрачное окно на весь экран. Либо каждому “подшефному” окну - свое маленькое прозрачно.
Окна всегда будут наверху, тут проблемм возникнуть не должно.

Спасибо за идеи, пошел копать доки.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version