Переключение на Главную Страницу Страницы: 1 [2]  ОтправитьПечать
Горячая тема (более 10 ответов) Загрузка CPU 20% от простого двиганья мышкой (число прочтений - 7616 )
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Загрузка CPU 20% от простого двиганья мышкой
Ответ #15 - 02. Октября 2006 :: 06:45
Печать  
Цитата:
Вызывать следующий Хук обязан ВСЕГДА, управлять можешь только обрабатываемым кодом, если передаешь положительное или нулевое значение, тем самым говоришь следующему "попробуй обработай, может это тебе?". Если передаешь <0, тогда вспомни собственный код, что ты там делаешь если тебе передали code<0 ?

Что-то ты не так понял.
Вызывать следующий хук я не обязан. Иначе это было бы сделано вообще без моего участия (автоматом бы он вызывался). Читай внимательно:
"If the hook procedure processed the message, it may return a nonzero value to prevent the system from passing the message to the target window procedure."
Т.е. в случае, если я отрабатываю сообщение, то следующие хуки могу и не вызывать. Что логично, т.к. они могут всю мою отработку порушить.
Да и nCode - это совсем не то, что вернулось из прошлого хука.
  

FormEx developer
Наверх
www  
IP записан
 
Dave Owen OWL
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 19
Зарегистрирован: 26. Сентября 2006
Пол: Мужской
Re: Загрузка CPU 20% от простого двиганья мышкой
Ответ #16 - 02. Октября 2006 :: 08:53
Печать  
Цитата:
Цитата:
Вызывать следующий Хук обязан ВСЕГДА, управлять можешь только обрабатываемым кодом, если передаешь положительное или нулевое значение, тем самым говоришь следующему "попробуй обработай, может это тебе?". Если передаешь <0, тогда вспомни собственный код, что ты там делаешь если тебе передали code<0 ?

Что-то ты не так понял.
Вызывать следующий хук я не обязан. Иначе это было бы сделано вообще без моего участия (автоматом бы он вызывался). Читай внимательно:
"If the hook procedure processed the message, it may return a nonzero value to prevent the system from passing the message to the target window procedure."
Т.е. в случае, если я отрабатываю сообщение, то следующие хуки могу и не вызывать. Что логично, т.к. они могут всю мою отработку порушить.
Да и nCode - это совсем не то, что вернулось из прошлого хука.


Тогда зачем нужен nCode<0 только для пост обработки сообщения?
  
Наверх
ICQ  
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Загрузка CPU 20% от простого двиганья мышкой
Ответ #17 - 02. Октября 2006 :: 09:19
Печать  
Цитата:
Тогда зачем нужен nCode<0 только для пост обработки сообщения?

Может это лучше у MSDN спросить? Или в MS написать по этому поводу? Улыбка
  

FormEx developer
Наверх
www  
IP записан
 
Dave Owen OWL
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 19
Зарегистрирован: 26. Сентября 2006
Пол: Мужской
Re: Загрузка CPU 20% от простого двиганья мышкой
Ответ #18 - 02. Октября 2006 :: 09:23
Печать  
Цитата:
Цитата:
Тогда зачем нужен nCode<0 только для пост обработки сообщения?

Может это лучше у MSDN спросить? Или в MS написать по этому поводу? Улыбка

Улыбка
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Загрузка CPU 20% от простого двиганья мышкой
Ответ #19 - 02. Октября 2006 :: 14:21
Печать  
Читаю МСДН дальше, а именно комменты к функции SetWindowsHookEx

Calling the CallNextHookEx function to chain to the next hook procedure is optional, but it is highly recommended; otherwise, other applications that have installed hooks will not receive hook notifications and may behave incorrectly as a result. You should call CallNextHookEx unless you absolutely need to prevent the notification from being seen by other applications.

Так что вызывать нужно в любом случае !!

ЗЫ тем более, чтоб буквально вчера работал над Визуал1С++, также ставил системные хуки по ловле сообщений Винды для Конфигуратора.
Также у меня одновременно был запущен MS Spy++.
Так вот, стоило мне не вызвать CallNextHookEx (тестировал), так система сразу же повесилась и вылечилась только ресетом Печаль

  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Dave Owen OWL
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 19
Зарегистрирован: 26. Сентября 2006
Пол: Мужской
Re: Загрузка CPU 20% от простого двиганья мышкой
Ответ #20 - 02. Октября 2006 :: 14:28
Печать  
artbear писал(а) 02. Октября 2006 :: 14:21:
Так вот, стоило мне не вызвать CallNextHookEx (тестировал), так система сразу же повесилась и вылечилась только ресетом Печаль



У меня тоже примерно тоже самое было с хуками на файловую систему.
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 
ОтправитьПечать