| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: WinAPI и системное программирование > Hook, запретить что-нть. |
| Автор: Mikel 21.9.2002, 23:04 |
| У меня есть hook на shell. Как запретить создание определенного окна с известным caption? |
| Автор: Song 23.9.2002, 02:09 |
| Читаем хэлп на сообщение WM_CREATE |
| Автор: Mikel 23.9.2002, 03:11 |
| Т.е. перехватывать сообщение wm_create и hook на системные сообщения? Если можно, поподробнее, плз. |
| Автор: Song 24.9.2002, 15:28 |
| При создании оконного приложения создаются окна. При этом генерируется куча сообщений, вот только некоторые из них: WM_NCCREATE, WM_CREATE, WM_SIZE и пр. Если Вы хотите отфильтровывать, Вам надо отлавливать эти сообщения и обнулять их или вернуть недопустимый код возврата, чтобы оно не исполнилось но только для тех окон, которые Вы не хотите чтобы они появлялись. Однако это не всё. Надо ещё терминировать их процессы. Вообщем здесь дафига чего может быть... Легче наверно сразу по процессам - EnumProcesses() и в поток и отлавливать таким образом неугодные. |
| Автор: FdX 25.9.2002, 02:45 |
| EnumProcesses, помойму, пашет только под НТ. По этому, наверное, лучше toolhelp - process32first, process32next и т.п. |
| Автор: Mikel 25.9.2002, 23:04 |
| Т.е. не получится просто не пропустить сообщение, чтобы процесс не запустился? |
| Автор: Song 26.9.2002, 05:38 |
| Почему? Можно. Просто нужно вернуть недопустимый код возврата. Я просто имел ввиду, что таким образом надо пинать под зад не одному сообщению. Нет такого одного, чтобы его послать и окно не создатся, надо отслеживать все сообщения, возникающее при создании окна, которое необходимо заблокировать. |
| Автор: FdX 26.9.2002, 06:32 | ||
Гораздо проще, зная hwnd, GetWindowThreadPeocessId - OpenProcess - TerminateProcess. |