Форум: "WinAPI";
Текущий архив: 2004.08.08;
Скачать: [xml.tar.bz2];
ВнизКнопка в заголовке всех окон Найти похожие ветки
← →
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 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.08.08;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.037 c