Главная страница
    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.032 c
14-1090007790
Nickola2
2004-07-16 23:56
2004.08.08
Ураа!!! Подключил через GPRS дома телефон!! :))


3-1089889541
ydv
2004-07-15 15:05
2004.08.08
Клиент-сервер


1-1090599763
kiki
2004-07-23 20:22
2004.08.08
что такое HBitmap?


1-1090435056
Satan
2004-07-21 22:37
2004.08.08
Работа с большими (2**512) числами!


6-1086558721
Prankster.
2004-06-07 01:52
2004.08.08
Как получить доменное имя по IP





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский