New user registration is currently disabled due to spam abuse / Регистрация новых пользователей в настоящее время приостановлена из-за злоупотреблений спаммерами

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

Сообщаем о найденных ошибках сюда

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

Postby ikm » Sat Jul 10, 2010 4:07 pm

Не знаю :) Это по большей части не мой код.
ikm
Автор GoldenDict
 
Posts: 1595
Joined: Wed Feb 04, 2009 10:40 am

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

Postby Abs62 » Sat Jul 10, 2010 4:15 pm

Ну, я сейчас собрал себе с включённой проверкой и на WAIT_ABANDONED, будем посмотреть. ;)
Abs62
 
Posts: 631
Joined: Mon Jun 14, 2010 11:51 am

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

Postby Abs62 » Tue Jul 13, 2010 4:02 am

Кажись, понял я, откуда у этих глюков ноги растут. Вот из этой строчки в TextOutSpy.c:
Code: Select all
GlobalData->TimerID = SetTimer(0, 0, MOUSEOVER_INTERVAL, TimerFunc);

Если старый таймер по какой-то причине не убит, всё равно будет создан новый. А старый останется бесхозным - утечка ресурсов и со временем разнообразные глюки.
Правка прилагается - этот момент и ещё несколько проверок старого параноика. ;)
Attachments
mouseover_win32_diff.zip
(1.68 KiB) Downloaded 784 times
Abs62
 
Posts: 631
Joined: Mon Jun 14, 2010 11:51 am

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

Postby Abs62 » Tue Jul 13, 2010 10:57 pm

Более радикальный вариант - вообще не убивать таймер без необходимости.
Attachments
mouseover_win32_diff.zip
(1.95 KiB) Downloaded 831 times
Last edited by Abs62 on Thu Jul 15, 2010 5:26 pm, edited 2 times in total.
Abs62
 
Posts: 631
Joined: Mon Jun 14, 2010 11:51 am

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

Postby ikm » Wed Jul 14, 2010 2:25 pm

Спасибо! Патчи приложу к основному git, когда доберусь до рабочей машины. Имеет смысл брать второй, радикальный?
ikm
Автор GoldenDict
 
Posts: 1595
Joined: Wed Feb 04, 2009 10:40 am

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

Postby Abs62 » Wed Jul 14, 2010 2:49 pm

Думаю, да. Сегодня несколько часов гонял именно в этом варианте, и никаких проблем.

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

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

PPS. Ещё один штришок, чтобы лишних дёрганий не было, пока мышка не шевелится.
Abs62
 
Posts: 631
Joined: Mon Jun 14, 2010 11:51 am

Previous

Return to Ошибки

Who is online

Users browsing this forum: No registered users and 16 guests