Page 2 of 2

Re: Серьезная проблема со Scan Popup

PostPosted: Sat Jul 10, 2010 4:07 pm
by ikm
Не знаю :) Это по большей части не мой код.

Re: Серьезная проблема со Scan Popup

PostPosted: Sat Jul 10, 2010 4:15 pm
by Abs62
Ну, я сейчас собрал себе с включённой проверкой и на WAIT_ABANDONED, будем посмотреть. ;)

Re: Серьезная проблема со Scan Popup

PostPosted: 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

PostPosted: Tue Jul 13, 2010 10:57 pm
by Abs62
Более радикальный вариант - вообще не убивать таймер без необходимости.

Re: Серьезная проблема со Scan Popup

PostPosted: Wed Jul 14, 2010 2:25 pm
by ikm
Спасибо! Патчи приложу к основному git, когда доберусь до рабочей машины. Имеет смысл брать второй, радикальный?

Re: Серьезная проблема со Scan Popup

PostPosted: Wed Jul 14, 2010 2:49 pm
by Abs62
Думаю, да. Сегодня несколько часов гонял именно в этом варианте, и никаких проблем.

Да, и ещё один нюанс. В функции ActivateTextOutSpying при снятии хука, думаю, идеологически правильнее будет сначала UnhookWindowsHookEx вызвать, а уж после этого таймер убивать, а не наоборот. В патчи это не вошло - уже после об этом подумал.

PS. Заменил тот патч на новый, с этой добавкой.

PPS. Ещё один штришок, чтобы лишних дёрганий не было, пока мышка не шевелится.