Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.08;
Скачать: CL | DM;

Вниз

Кнопка в заголовке всех окон   Найти похожие ветки 

 
Lin   (2004-06-29 12:09) [0]

Хочу поместить кнопку в заголовок всех окон (наподобие zip-magic"а). На форумах нашёл только как поместить кнопку в заголовок своего окна :(

Собираюсь решать задачу так:
0. Пройтись по всем окнам и отобрать окна с заголовками.
1. Определить каким процессам принадлежат отобранные окна.
2. Установить хук на эти процессы.
3. Подменить процедуры этих окон на свои, в которых будет происходить отрисовка моей кнопки.
После всего этого, чтобы обрабатывать новые окна:
4. а) С каким-то интервалом времени отыскивать новые окна и повторять п. 1-3  - как идея это должно сработать, но реализовывать  так я не хочу по целому ряду причин...
4. б) Установить перехват API функций (CreateWindow, MessageBox и др.).

Вопросы к профи:
0. В целом по стратегии: что-то, имхо, слишком сложно. Может быть будет достаточно установить хуки на WH_CALLWNDPROC, WH_GETMESSAGE и WH_GETMESSAGE? Всю обработку делать в них и не подменять процедуры окон, т.е. убрать п. 3-4.
1. Как узнать есть ли у окна заголовок?
2. Если таки прийдётся делать перехват API функций, какие перехватывать? Имхо: CreateWindow, CreateWindowEx, MessageBox, MessageBoxEx, MessageBoxIndirect, CreateDialog, CreateDialogIndirect, CreateDialogIndirectParam, CreateDialogParam, DialogBox, DialogBoxIndirect, DialogBoxIndirectParam, DialogBoxParam и ещё + к этой куче LoadLibrary, LoadLibraryEx, GetProcAddress. - О-ля-ля!! Я ничего не забыл?

Заранее спасибо всем.
P.S. Надеюсь я не сильно притомил длинным вопросом...   :)


 
Игорь Шевченко ©   (2004-06-29 13:11) [1]


> 1. Как узнать есть ли у окна заголовок?


(GetWindowLong(hWnd, GWL_STYLE) and WS_CAPTION) = WS_CAPTION


 
Lin   (2004-06-29 13:12) [2]

Упс! Торможу... Знаете ли первый рабочий день на неделе...
Вопрос №1 снят. Есть такой стиль WS_CAPTION ...


 
Lin   (2004-06-29 13:16) [3]

Пока писал предыдущий пост Игорь уже ответил... Спасибо.


 
GuAV ©   (2004-06-29 13:30) [4]

Имхо меньше. Например MessageBox это wrapper к MessageBoxEx, и т.д.



Страницы: 1 вся ветка

Текущий архив: 2004.08.08;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.025 c
3-1089350181
Junior
2004-07-09 09:16
2004.08.08
Rave отчет и Graphic


3-1089630354
Artem123
2004-07-12 15:05
2004.08.08
Разъясните еще раз про DBGrid (рисунки, Canvas и т.д.)


4-1088235176
Sormy
2004-06-26 11:32
2004.08.08
Как извлечь версию файла из произвольного файла?


1-1090510591
glGLU
2004-07-22 19:36
2004.08.08
Timer


14-1090231860
Некрофил-затейник__
2004-07-19 14:11
2004.08.08
Девушки и инопланетяне против модератора!