![]() |
|
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]()
|
|
| pwl38 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 23.1.2005 Репутация: нет Всего: нет |
Здравствуйте уважаемые.
Понимаю, что тема порядочно надоела всем и есть масса литературы и ссылок по данному вопросу, но иногда нужно, чтобы кто-то объяснил простым и понятным языком или хорошим примером. Я перерыл практически весь форум и не только его, но по-видимому либо не хватает опыта, чтобы найти для себя что-то подходящее. А вопрос самый что нинаесть жизненный - по крайней мере для меня, да и думаю другие вполне разделят мое мнение. Дело в том, что с появлением в доме Интернет у детей сложилось катастрофическое положение в школе - думаю что я не одинок в этом! Необходимо каким-то образом ограничить их "зависание" в И-нет, пока мы на работе. Помогите пожалуйста получить ответ на вопрос о том, каким путем разумней сделать это. У меня напрашивалось несколько вариантов. например 1. Запретить открытие Интернет-Эксплорера (но есть и другие броузеры, например в томже eMule); 2. Закрывать соединение(но тогда они будут лишены возможности даже просто скачивать что-то) и т.д. Я попробовал для начала написать что-то вроде глобального хука на WH_CBT, но у меня он работает очень странным образом. Во-первых создается ощущение, что он локальный, хотя функция перехвата лежит в DLL и срабатывает как ни странно только на одно событие - появление курсора мыши в облати приложения, вызвавшего этот хук. Скорей всего система почему-то просто не видит его. Был-бы очень признателен за конкретный ответ, а за пример еще более. Прошу набраться терпения и не отвечать чем-то наподобие "Этого полно в И-нет". По моему форум и существует для того, что-бы реально помогать друг другу. |
|||
|
||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 14 Всего: 112 |
Три раза прочитал, и так и не понял, что конкретно нужно
Значит, нужно чтобы они могли "просто скачивать что-то" - что это значит ? И если хотел не давать запускать браузер, то как они смогли бы что-то качать ? Уровень умения работать с компом у детей какой ? Доступ в инет какой ?... У тебя стоит Delphi - они могут бросить на форму TWebBrowser и шастать по инету И что хотел реализовать через хук ? Может просто сделать ежедневный лимит на объём трафика / время в инете ? -------------------- С уважением, г-н Посол. |
|||
|
||||
| pwl38 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 23.1.2005 Репутация: нет Всего: нет |
Спасибо, что откликнулся.
Дети с программированием вообще не дружат, так что работа с Делфи исключена полностью. Доступ в И-нет - ADSL. А хуком хотел не давать возможности какому-либо приложению открыться. Он у меня просто не реагирует на WH_CBT. Подскажи пожалуйста, как например не давать открыться тому-же И-нет Эксплореру. И очень интересна твоя идея насчет лимита времени. Как это можно реализовать. Заранее спасибо. |
|||
|
||||
| p0s0l |
|
||||||||||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 14 Всего: 112 |
Сам можешь поэкспериментировать... Есть ли RAS-подключение ? Можно было бы смотреть статистику подключения (трафик). Если есть, то можно ли его отрубать (RasHangUp) ?... (возможно смешные вопросы задаю У нас тут Snowy говорил, работал с RAS'ами, надо его спросить...
Создаёшь IShellWindows:
Через IShellWindows в таймере (к примеру, раз в 1 сек) смотришь, есть ли IE-окна в системе:
Если есть браузер - прибиваешь:
Против Оперы (и других браузеров на своём движке) это не пойдёт, но в случае IE поможет... -------------------- С уважением, г-н Посол. |
||||||||||
|
|||||||||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 1 Всего: 64 |
pwl38 Приведи код хука, а так же скажи название винды, в котором ты его запускаешь. У меня в свое время все прекрасно работало.
-------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| pwl38 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 23.1.2005 Репутация: нет Всего: нет |
Windows XP.
а код следующий (извини - обработку ошибок не пишу ) мне важно в принципе разобраться, но за конкретный пример буду очень благодарен
|
|||
|
||||
| <Spawn> |
|
||||||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 1 Всего: 64 |
1)
Это не будет работать, так как Capt у тебя является строкой и как минимум что нужно сделать это задать ее размер до вызова функции, так как функция GetWindowText не изменят размер буфера. Можешь попробовать так:
Обработчик хука тоже не совсем верный - измени на такой:
Это сообщение отредактировал(а) <Spawn> - 28.1.2005, 12:52 -------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
||||||
|
|||||||
| pwl38 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 23.1.2005 Репутация: нет Всего: нет |
Спасибо тебе, но суть то не в этом.
Дело в том что я вообще никогда не попадаю дальше
Параметр Code на входе в фунцию ловушки вседа 5 или 6, но никак не 3(это HCBT_CREATEWND). Думаю, что мою ДЛЛ другие процессы просто не видят. Здесь p0s0l мне помог решить вопрос с закрытием Эксплорера, я это сделал (работающий код потом выложу, если кому интересно), но мне хочется понять, почему у меня не работает ДЛЛ. И попутно еще одно - может знаешь, что происходит при перемещении мыши по рабочему столу, когда курсор мыши попадает на какой-то ярлык. Я имею ввиду последовательность сообщений. |
|||
|
||||
| <Spawn> |
|
||||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 1 Всего: 64 |
Не знаю, почему у тебя не работает. Вот на всякий случай код, который работает у меня(будет работать от вин 9x до 2003). Проверял для окна класса TForm, так как некогда искать класс Explorer-а(В крайнем случае можешь завязать на названии окна, но я бы так делать не стал)
Поменяй тут лишь значение костанты PROGRAM_CLASS_NAME на нужное тебе. -------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
||||
|
|||||
![]()
|
| Правила форума "Delphi: WinAPI и системное программирование" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |