Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Hook, запретить что-нть. 
:(
    Опции темы
Mikel
Дата 21.9.2002, 23:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 882
Регистрация: 30.3.2002
Где: Саратов

Репутация: нет
Всего: 2



У меня есть hook на shell. Как запретить создание определенного окна с известным caption?


--------------------
...so remember, it's better to burn out than to fade away
PM MAIL ICQ   Вверх
Song
Дата 23.9.2002, 02:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Sysman.ru
***


Профиль
Группа: Участник
Сообщений: 1095
Регистрация: 2.6.2002

Репутация: нет
Всего: 4



Читаем хэлп на сообщение WM_CREATE


--------------------
Прежде чем сказать "Невозможно", подумай, прав ли ты
PM WWW ICQ   Вверх
Mikel
Дата 23.9.2002, 03:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 882
Регистрация: 30.3.2002
Где: Саратов

Репутация: нет
Всего: 2



Т.е. перехватывать сообщение wm_create и hook на системные сообщения?
Если можно, поподробнее, плз.


--------------------
...so remember, it's better to burn out than to fade away
PM MAIL ICQ   Вверх
Song
Дата 24.9.2002, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Sysman.ru
***


Профиль
Группа: Участник
Сообщений: 1095
Регистрация: 2.6.2002

Репутация: нет
Всего: 4



При создании оконного приложения создаются окна. При этом генерируется куча сообщений, вот только некоторые из них: WM_NCCREATE, WM_CREATE, WM_SIZE и пр. Если Вы хотите отфильтровывать, Вам надо отлавливать эти сообщения и обнулять их или вернуть недопустимый код возврата, чтобы оно не исполнилось но только для тех окон, которые Вы не хотите чтобы они появлялись. Однако это не всё. Надо ещё терминировать их процессы. Вообщем здесь дафига чего может быть...
Легче наверно сразу по процессам - EnumProcesses() и в поток и отлавливать таким образом неугодные.


--------------------
Прежде чем сказать "Невозможно", подумай, прав ли ты
PM WWW ICQ   Вверх
FdX
Дата 25.9.2002, 02:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 13.8.2002

Репутация: нет
Всего: нет



EnumProcesses, помойму, пашет только под НТ. По этому, наверное, лучше toolhelp - process32first, process32next и т.п.
PM MAIL ICQ   Вверх
Mikel
Дата 25.9.2002, 23:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 882
Регистрация: 30.3.2002
Где: Саратов

Репутация: нет
Всего: 2



Т.е. не получится просто не пропустить сообщение, чтобы процесс не запустился?


--------------------
...so remember, it's better to burn out than to fade away
PM MAIL ICQ   Вверх
Song
Дата 26.9.2002, 05:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Sysman.ru
***


Профиль
Группа: Участник
Сообщений: 1095
Регистрация: 2.6.2002

Репутация: нет
Всего: 4



Почему? Можно. Просто нужно вернуть недопустимый код возврата.
Я просто имел ввиду, что таким образом надо пинать под зад не одному сообщению. Нет такого одного, чтобы его послать и окно не создатся, надо отслеживать все сообщения, возникающее при создании окна, которое необходимо заблокировать.


--------------------
Прежде чем сказать "Невозможно", подумай, прав ли ты
PM WWW ICQ   Вверх
FdX
Дата 26.9.2002, 06:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 13.8.2002

Репутация: нет
Всего: нет



Цитата
Почему? Можно. Просто нужно вернуть недопустимый код возврата.
Я просто имел ввиду, что таким образом надо пинать под зад не одному сообщению. Нет такого одного, чтобы его послать и окно не создатся, надо отслеживать все сообщения, возникающее при создании окна, которое необходимо заблокировать.


Гораздо проще, зная hwnd, GetWindowThreadPeocessId - OpenProcess - TerminateProcess.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0454 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.