![]() |
|
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]()
|
|
| bems |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 21 Всего: 88 |
вобщем да, но что случиться если тачку перезагрузят некорректно?
-------------------- Обижено школьников: 8 |
||||
|
|||||
| Dmitry_177 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 418 Регистрация: 22.9.2006 Репутация: нет Всего: нет |
Запустил свою программу с кодом из пункта 2, функцию MessageProc обработки хука написал как тут, скопировал точнее, запустил, у меня аж Delphi вырубилась как только скомпилировалась программа и токо-токо успела запуститься.. Просто изначально писал код без delphi, т.к. небыло тогда его рядом... И что-то я не пойму никак почему так...??? Вроде все правильно...
|
|||
|
||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 21 Всего: 88 |
А тут все нормально? хук WH_CALLWNDPROC работает в контексте чужого процесса. Поэтому сохранение данных должно быть продуманым и синхронизированым. Учитывая доступность памяти и хэндлов Добавлено @ 08:59 hMsgHook известен в библиотеке? если нет, то лучше вместо него в вызове CallNextHookEx передавай ноль. Начиная с 2000й это работает. В этой процедуре хука wparam это не сообщение. Сообщение лежит в структуре CWPSTRUCT указатель на которую передается в lparam nCode = HC_ACTION означает что тут может быть твоя обработка, а CallNextHookEx нужно вызывать во всех случаях -------------------- Обижено школьников: 8 |
|||
|
||||
| Dmitry_177 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 418 Регистрация: 22.9.2006 Репутация: нет Всего: нет |
WH_CALLWNDPROC нужно в dll ставить??
Я в программе сделал... мне надо в программе, чтобы безо всяких там dll-ок... Это сообщение отредактировал(а) Dmitry_177 - 10.1.2007, 10:49 |
|||
|
||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 21 Всего: 88 |
без длл не выйдет
-------------------- Обижено школьников: 8 |
|||
|
||||
| Dmitry_177 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 418 Регистрация: 22.9.2006 Репутация: нет Всего: нет |
Т.е. отследить выключение windows без длл в моем случае никак нельзя, кроме как перехвата api функций?
|
|||
|
||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 21 Всего: 88 |
ну можно создат окно нулевых размеров, но тебе это вроде не подходило... Или может быть?
-------------------- Обижено школьников: 8 |
|||
|
||||
| Dmitry_177 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 418 Регистрация: 22.9.2006 Репутация: нет Всего: нет |
нет.. окно создавать не подходит...
|
|||
|
||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 21 Всего: 88 |
тогда лучше ДЛЛ? опиши задачу, имхо окно меньший оверхед... Или дело в шифрованости? тогда всеравно не то...
-------------------- Обижено школьников: 8 |
|||
|
||||
| Dmitry_177 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 418 Регистрация: 22.9.2006 Репутация: нет Всего: нет |
Что значит оверхед? )))
Или дело в шифрованости? Типа того.. Есть программы - анализаторы кода, которые секут невидимые окна.. Поэтому хочу обойтись без окон.. dll- тоже быстро секутся некоторыми программами, ведь при хуке происходит инжект dll в чужие программы... А вот хук на WH_KEYBOARD_LL к моему удивлению не секется, покрайней мере теми которыми я проверял... Скорей всего это из-за того что программа работает напрямую с драйвером клавиатуры... Вот понадобилось запуск и остановку компьютера отслеживать.. С запуском все понятно, при запуске проги будет производиться запись что комп включен, т.к. она будет запускаться при запуске.. А вот с выключением уже проблемы...((( До сих пор все парюсь, никак ничего не придумаю...((( Это сообщение отредактировал(а) Dmitry_177 - 16.1.2007, 01:48 |
|||
|
||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 21 Всего: 88 |
ну пиши куда-нить
17:32:12 - все спокойно 17:32:13 - все спокойно 17:32:14 - все спокойно при следующем запуске проверяй последнюю запись и будешь знать время выключения Но только нужно еще защититься от случая когда тебя прервут посреди записи -------------------- Обижено школьников: 8 |
|||
|
||||
| Dmitry_177 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 418 Регистрация: 22.9.2006 Репутация: нет Всего: нет |
Ок, идею понял )))
|
|||
|
||||
![]()
|
| Правила форума "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. |