|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
03.05.2008, 00:51 | #1 |
Старожил
Регистрация: 06.08.2007
Сообщений: 2,183
|
Контроль запускаемых окон(Hook)
Цель программы, вести лог замускаемых программ, и записывать в файл, который будет лежать в той же директории, где и сама DLL.
Ошибки: 1) Почему то несоздаётся лог файл, 2) При попытки выгрузки DLL, выходит Access Violation, (интересно почему). Использование: Пока что гружу динамически, вручную. Как исправить, чтобы заработало? |
03.05.2008, 03:34 | #2 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
Alter, внимательность, внимательность и ещё раз внимательность. !
Код:
|
03.05.2008, 17:06 | #3 |
Старожил
Регистрация: 06.08.2007
Сообщений: 2,183
|
Немного переделал, но что-то всёравно нетак.
Должно реагировать на создаваемые окна в системе, а результат записывать в файл. Но файл несоздаётся. Может в DLL неправильно считываю информацию, использую WH_CBT хук. ------------------- Никто несможет помочь наладить? Может кто-то взглянет, и напишет что не так в DLL. Пользуйтесь редактированием постов. Не размножайте их. Последний раз редактировалось B_N; 03.05.2008 в 20:13. |
03.05.2008, 19:33 | #4 | |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Для меня странно вот это: ( первое что заметил )
Код:
Код:
Еще уберите Classes ну Lst :TStringList; замените лучше на Lst: TextFile и юзайте ReWrite, WriteLn, CloseFile Вычитал в совсем неизвестном справочнике MSDN Цитата:
Последний раз редактировалось BOBAH13; 03.05.2008 в 19:43. |
|
03.05.2008, 19:55 | #5 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Поидее должно быть так, но при запуске у меня explorer падает и все
Код:
|
03.05.2008, 20:20 | #6 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
Alter, хук CBT вызывается в контексте процесса-"жертвы". Как по-Вашему, что будет возвращать при этом ParamStr(0)? Я вот, честно, понятия не имею, что вытворит дельфи в таком случае. Чем меньше в таких вещах всех этих паскальных примочек, тем лучше. И вообще, хуки - это не так просто, как может показаться. Нужно учитывать, в чьём контексте он вызывается, что хук ставится на поток, а не на процесс, что надо организовывать в слабых местах обработку исключений и т.д.
|
03.05.2008, 20:25 | #7 |
Старожил
Регистрация: 06.08.2007
Сообщений: 2,183
|
Пробывал переделанный вариант от ВОВАН13, действительно начинают выключатся окна. 2B_N может предложите свой вариант контроля, чтобы невылетало и запись в файл была как надо. Текстовый файл предложил ВОВАН13, с TStringList вроде невылетало.
|
03.05.2008, 20:34 | #8 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
записывать в файл надо так:
Код:
1. Когда DLL грузится в другой процесс, то надо открывать файл заново, потому что при загрузке в новый процесс в переменной Lst будет ноль или "ерунда". 2. Надо открывать, записывать и закрывать его, потому что когда ты откроешь файл в функции RunStopHook, то никакой другой процесс не сможет открыть его. |
03.05.2008, 22:05 | #9 |
Старожил
Регистрация: 06.08.2007
Сообщений: 2,183
|
Вот нашол код на Си, может кто-то переведёт его на Delphi. Можно ли этот код приспособить под мою ДЛЛ? Здесь тоже есть перехват создаваемых окон.
Код:
Никто несможет разобраться? Последний раз редактировалось Alter; 04.05.2008 в 19:36. |
30.09.2008, 22:14 | #10 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Привет. Может кто поможет (хотя уже у меня выработался инстинкт, что тут я ответа не получу ). Какие сообщения надо обрабатывать, в глобальном хуке, и какой хук ставить, чтобы знать что окно изменило размеры, положение, перерисовалось, создало что либо в себе, само создалось, удалилось, свернулось, развернулось и т.п.... собственно все. Мне надо знать что в окне что-то изменилось... а вот как и что именно для этого требуется пока собираю информацию. Спасибо
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Global Hook - движение окон | BOBAH13 | Общие вопросы Delphi | 5 | 16.09.2008 11:59 |
IP из заголовка TCP + контроль за портами | Majestry | Работа с сетью в Delphi | 2 | 28.05.2008 09:54 |
Контроль перемещения мыши | Falling_Tear | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 3 | 29.11.2007 19:43 |
Как получить список запускаемых программ? | kozei | Win Api | 8 | 01.11.2007 16:07 |