Изменить стиль окна
От: Divineshadow  
Дата: 11.03.06 11:32
Оценка:
Здравствуйте.
Устанавливаю хук на создание окна.
Фильтрующая функция выглядит так:
LRESULT CALLBACK CreateHook(int code,WPARAM wparam,LPARAM lparam)
{
    if(code==HCBT_CREATEWND)
    {
        CREATESTRUCT    *cs=((CBT_CREATEWND*)lparam)->lpcs;
        try
        {
            if(strcmp(cs->lpszClass, "IEFrame")==0)
            {
                cs->dwExStyle |= WS_EX_TOOLWINDOW; 
              //для того что бы не появлялась кнопка на таскбаре
            }
        }
        catch(...)
        {
        }
    }
return CallNextHookEx(NULL,code,wparam,lparam);
}

Кнопка на таксбаре всё равно появляется. Почему?
Есть ли способ предотвратить появления кнопки на таскбаре при помощью хуков?
И ещё — иногда при попытке прочитать строку из cs->lpszClass, возникает ошибка.
Пишет, что нет прав для чтения памяти по такому-то адресу.
Получается в системе есть такие окна, имена классов которых невозможно получить?
Re: Изменить стиль окна
От: Divineshadow  
Дата: 11.03.06 16:39
Оценка:
Всё решилась так:
char    cln[500];
GetClassName((HWND)wparam, cln, 499);
SetWindowLong((HWND)wparam,GWL_EXSTYLE, WS_EX_TOOLWINDOW);
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.