У меня есть обработчик открытого окна, которое не обязательно было открыто моим процессом. Как я могу добавить кнопку в это окно и заставить кнопку вызывать определенное приложение (.exe) при нажатии? Кнопка может быть рядом с системным меню или кнопкой свертывания. Это должно работать как для XP, так и для Vista (можно использовать разные подходы для каждой версии).
Как добавить кнопку в строку заголовка окна других приложений (XP/Vista)
Ответы (1)
Стандартный подход заключается в том, чтобы внедрить DLL в процесс с помощью SetWindowsHookEx, перехватывая WH_CALLWNDPROC для отслеживания сообщения WM_NCPAINT. Раньше это работало довольно хорошо, но не более того. Visual Styles и Vista UAC заставят вас отрастить довольно длинную бороду. Обычное дело во времена Windows 3.x, я давно этого не видел.
person
Hans Passant
schedule
07.11.2008
К сожалению, это не дает мне ожидаемого ответа, но это лучшее, что я нашел до сих пор. Я даже не знаю, как сформулировать свой вопрос в Google... Учитывая тот факт, что такие ответы, как вы не можете этого сделать, являются действительными, у меня нет другого выбора, кроме как принять ваш. Спасибо!
- person Tom; 10.11.2008
Не могли бы вы быть немного подробнее? Я знаю, что SetWindowsHookEx — это вызов статического API, но как его использовать? Я бы тоже хотел добиться такой функциональности, знаете ли.
- person Alex Essilfie; 07.11.2010