Ловушка.
Кто мне расскажет как сделать ловушку для таймера?
У меня есть шароварная прога которая через час работы отрубается. Я так подозреваю,
что час она отмеряет с помощью виндовского таймера (а как ещё?). Как бы мне перехватить
сообщение от таймера и убить его?
P.s.: На любом языке поддерживающем вин апи.
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru
-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru
http://subscribe.ru/ mailto:ask@subscribe.ru
Здравствуйте !
Ни за что бы не стал отмерять время с помощью таймера - ломается
на раз.
Для начала надо выяснить то, действительно ли программа по таймеру
время отмеряет - берете Spy из комплекта Visual Studio - и вперед -
инспектируете все окна программы. Но скорее всего ничего не добьетесь.
Потому что может программа не сообщения ловит от таймера, а подсунула
в SetTimer указатель на функцию обратного вызова.
В любом случае таймер убивается при помощи KillTimer - API функции.
Навряд ли вам так повезет и защита так проста.
Может, программа получает системмное время + через GetTickCount,
а может через QueryPerformanceCounter + QueryPerformanceFrequency
или делает что то типа :
__int64 MyQueryCounter(void)
{
_asm _emit 0x0F
_asm _emit 0x31
}
это запись инструкции RDTSC псевдокомандами.
Перехватить - сделав глобальный хук на постановку сообщения в очередь.
Убить - просто не пропустить его в очередь. Кстати, в курсе, что ListCtrl
тоже пользуется таймером, обновление тулбаров в MFC - тоже на таймерах, и
еще много чего. Так что тут - главное не перехватить, а выделить нужный.
--
С уважением, Вахтуров Виктор.
Информационный сайт для программистов http://SoftMaker.com.ru
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru
-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru
http://subscribe.ru/ mailto:ask@subscribe.ru