Форум сайта python.su
Доброе утро, уважаемое сообщество.
Понадобилось сделать такую хитрую штуку.
ОС - Windows
Программа должна перебрать все открытые окна в системе, найти нужные (по заголовку, например) и начать с ними работать:
Нужно взять “снимок” каждого окна, проанализировать его и подрисовать несколько элементов (линии и текст).
Вот сижу и думаю, как бы такое сделать?
Никто таким не занимался?
Офлайн
aaleksanderДля получения окон EnumWindows, EnumChildWindows. А дальше уже сложнее. Взять снимок окна, если оно не целиком видно на десктопе - посылать wm_printclient (но это не всегда 100% работает), Подрисовывать можешь с BitBlt на device context окна, но как только оно получит следующий wm_paint, опять нарисует все как было. Можно ставить hook на wm_paint или если это стандартний контрол типа edit, listbox, button и т.д. можно внедрить этот контрол и поставить на чужом окне. При этом пользоваться CreateRemoteThread и т.д. Плюс конечно нужны привилегии админа и все такое. С виду может и кажется несложно, но реально много работы и большие шансы что не все не будет работать как положено.
Вот сижу и думаю, как бы такое сделать?
aaleksanderЯ mirror драйвер написал, но и это мне кажется гораздо легче, нежели твоя задумка. Но я не говорю что брось все это. Если есть желание и МНОГО терпения, тогда задача конечно интересная.
Никто таким не занимался?
Офлайн
Вот только что появилась идея сделать прозрачное окно на весь экран. Либо каждому “подшефному” окну - свое маленькое прозрачно.
Окна всегда будут наверху, тут проблемм возникнуть не должно.
Спасибо за идеи, пошел копать доки.
Офлайн