Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.035 c
14-1090402373
Piter
2004-07-21 13:32
2004.08.08
Окно уходит под "Панель задач"


1-1090837961
Ibn El Ivan
2004-07-26 14:32
2004.08.08
Checklistbox


1-1090805019
NumDer32Ok
2004-07-26 05:23
2004.08.08
Base64 алгоритм


1-1090446991
Volk
2004-07-22 01:56
2004.08.08
Файл


14-1090307859
Undert
2004-07-20 11:17
2004.08.08
Правила пользования (компьютерной) техникой





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский