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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Хук без формы 
:(
    Опции темы
bems
Дата 9.1.2007, 23:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

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



Цитата(Dmitry_177 @  9.1.2007,  05:22 Найти цитируемый пост)
1. Если цикл никогда не заканчивается и т.д., вот так нормально будет оставить или лучше как-то еще его написать?
нормально

Цитата(Dmitry_177 @  9.1.2007,  05:22 Найти цитируемый пост)
Правильно ли будет так обрабатывать хук на WM_ENDSESSION?
вобщем да, но что случиться если тачку перезагрузят некорректно?

Цитата(Dmitry_177 @  9.1.2007,  05:22 Найти цитируемый пост)
3. Если делать перехват АПИ, на какую(ие) лучше функцию(ии) ставить перехват, которая(ые) может/могут вырубить мою программу? 
ищи по форуму



--------------------
Обижено школьников: 8
PM MAIL   Вверх
Dmitry_177
Дата 10.1.2007, 01:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Запустил свою программу с кодом из пункта 2, функцию MessageProc обработки хука написал как тут, скопировал точнее, запустил, у меня аж Delphi вырубилась как только скомпилировалась программа и токо-токо успела запуститься.. Просто изначально писал код без delphi, т.к. небыло тогда его рядом... И что-то я не пойму никак почему так...??? Вроде все правильно...
PM MAIL   Вверх
bems
Дата 10.1.2007, 08:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

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



Код

begin
  // сохраняем данные
end;

А тут все нормально?

хук WH_CALLWNDPROC работает в контексте чужого процесса. Поэтому сохранение данных должно быть продуманым и синхронизированым. Учитывая доступность памяти и хэндлов

Добавлено @ 08:59 
hMsgHook известен в библиотеке?
если нет, то лучше вместо него в вызове CallNextHookEx передавай ноль. Начиная с 2000й это работает.

В этой процедуре хука wparam это не сообщение. Сообщение лежит в структуре  CWPSTRUCT указатель на которую передается в lparam

nCode = HC_ACTION означает что тут может быть твоя обработка, а CallNextHookEx нужно вызывать во всех случаях


--------------------
Обижено школьников: 8
PM MAIL   Вверх
Dmitry_177
Дата 10.1.2007, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



WH_CALLWNDPROC нужно в dll ставить??  smile 
Я в программе сделал... мне надо в программе, чтобы безо всяких там dll-ок...

Это сообщение отредактировал(а) Dmitry_177 - 10.1.2007, 10:49
PM MAIL   Вверх
bems
Дата 11.1.2007, 01:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

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



без длл не выйдет


--------------------
Обижено школьников: 8
PM MAIL   Вверх
Dmitry_177
Дата 11.1.2007, 16:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Т.е. отследить выключение windows без длл в моем случае никак нельзя, кроме как перехвата api функций?
PM MAIL   Вверх
bems
Дата 14.1.2007, 01:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

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



ну можно создат окно нулевых размеров, но тебе это вроде не подходило... Или может быть?


--------------------
Обижено школьников: 8
PM MAIL   Вверх
Dmitry_177
Дата 14.1.2007, 01:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



нет.. окно создавать не подходит...
PM MAIL   Вверх
bems
Дата 16.1.2007, 01:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

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



Цитата(Dmitry_177 @  14.1.2007,  01:18 Найти цитируемый пост)
нет.. окно создавать не подходит... 
тогда лучше ДЛЛ? опиши задачу, имхо окно меньший оверхед... Или дело в шифрованости? тогда всеравно не то...



--------------------
Обижено школьников: 8
PM MAIL   Вверх
Dmitry_177
Дата 16.1.2007, 01:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Что значит оверхед? )))

Или дело в шифрованости?
Типа того.. Есть программы - анализаторы кода, которые секут невидимые окна.. Поэтому хочу обойтись без окон.. dll- тоже быстро секутся некоторыми программами, ведь при хуке происходит инжект dll в чужие программы... А вот хук на WH_KEYBOARD_LL к моему удивлению не секется, покрайней мере теми которыми я проверял... Скорей всего это из-за того что программа работает напрямую с драйвером клавиатуры...

Вот понадобилось запуск и остановку компьютера отслеживать.. С запуском все понятно, при запуске проги будет производиться запись что комп включен, т.к. она будет запускаться при запуске.. А вот с выключением уже проблемы...((( До сих пор все парюсь, никак ничего не придумаю...(((

Это сообщение отредактировал(а) Dmitry_177 - 16.1.2007, 01:48
PM MAIL   Вверх
bems
Дата 16.1.2007, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

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



ну пиши куда-нить 
17:32:12 - все спокойно
17:32:13 - все спокойно
17:32:14 - все спокойно

при следующем запуске проверяй последнюю запись и будешь знать время выключения
Но только нужно еще защититься от случая когда тебя прервут посреди записи


--------------------
Обижено школьников: 8
PM MAIL   Вверх
Dmitry_177
Дата 16.1.2007, 20:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Ок, идею понял )))


M
Girder
Одна тема - один вопрос!

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0665 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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