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

StackOverflow https://stackoverflow.com/questions/272440

  •  07-07-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top