Re: Серьезная проблема со Scan Popup
Posted:
Sat Jul 10, 2010 4:07 pm
by ikm
Не знаю
Это по большей части не мой код.
Re: Серьезная проблема со Scan Popup
Posted:
Sat Jul 10, 2010 4:15 pm
by Abs62
Ну, я сейчас собрал себе с включённой проверкой и на WAIT_ABANDONED, будем посмотреть.
Re: Серьезная проблема со Scan Popup
Posted:
Tue Jul 13, 2010 4:02 am
by Abs62
Кажись, понял я, откуда у этих глюков ноги растут. Вот из этой строчки в TextOutSpy.c:
- Code: Select all
GlobalData->TimerID = SetTimer(0, 0, MOUSEOVER_INTERVAL, TimerFunc);
Если старый таймер по какой-то причине не убит, всё равно будет создан новый. А старый останется бесхозным - утечка ресурсов и со временем разнообразные глюки.
Правка прилагается - этот момент и ещё несколько проверок старого параноика.
Re: Серьезная проблема со Scan Popup
Posted:
Tue Jul 13, 2010 10:57 pm
by Abs62
Более радикальный вариант - вообще не убивать таймер без необходимости.
Re: Серьезная проблема со Scan Popup
Posted:
Wed Jul 14, 2010 2:25 pm
by ikm
Спасибо! Патчи приложу к основному git, когда доберусь до рабочей машины. Имеет смысл брать второй, радикальный?
Re: Серьезная проблема со Scan Popup
Posted:
Wed Jul 14, 2010 2:49 pm
by Abs62
Думаю, да. Сегодня несколько часов гонял именно в этом варианте, и никаких проблем.
Да, и ещё один нюанс. В функции ActivateTextOutSpying при снятии хука, думаю, идеологически правильнее будет сначала UnhookWindowsHookEx вызвать, а уж после этого таймер убивать, а не наоборот. В патчи это не вошло - уже после об этом подумал.
PS. Заменил тот патч на новый, с этой добавкой.
PPS. Ещё один штришок, чтобы лишних дёрганий не было, пока мышка не шевелится.