Как добавить кнопку в строку заголовка окна других приложений (XP/Vista)

У меня есть обработчик открытого окна, которое не обязательно было открыто моим процессом. Как я могу добавить кнопку в это окно и заставить кнопку вызывать определенное приложение (.exe) при нажатии? Кнопка может быть рядом с системным меню или кнопкой свертывания. Это должно работать как для XP, так и для Vista (можно использовать разные подходы для каждой версии).


person Tom    schedule 07.11.2008    source источник


Ответы (1)


Стандартный подход заключается в том, чтобы внедрить DLL в процесс с помощью SetWindowsHookEx, перехватывая WH_CALLWNDPROC для отслеживания сообщения WM_NCPAINT. Раньше это работало довольно хорошо, но не более того. Visual Styles и Vista UAC заставят вас отрастить довольно длинную бороду. Обычное дело во времена Windows 3.x, я давно этого не видел.

person Hans Passant    schedule 07.11.2008
comment
К сожалению, это не дает мне ожидаемого ответа, но это лучшее, что я нашел до сих пор. Я даже не знаю, как сформулировать свой вопрос в Google... Учитывая тот факт, что такие ответы, как вы не можете этого сделать, являются действительными, у меня нет другого выбора, кроме как принять ваш. Спасибо! - person Tom; 10.11.2008
comment
Не могли бы вы быть немного подробнее? Я знаю, что SetWindowsHookEx — это вызов статического API, но как его использовать? Я бы тоже хотел добиться такой функциональности, знаете ли. - person Alex Essilfie; 07.11.2010