Ни у кого не найдется примерчика кода, который ставит глобальный хук на событие записи в реестр и/или записи на жесткий диск (удаление/создание/изменение директорий, файлов)?
Чтение хелпа мне не особо помогло.
[] C>это не совсем то. мне нужно перехватить само событие изменения в реестре чего либо, а не конкретного ключа.
C>кто-нибудь знает как это сделать (желательно на CBuilder)?
А вы внимательно читали документацию по RegNotifyChangeKeyValue? Придет вам "само событие изменения в реестре чего либо", придет. Достаточно только поставить RegNotifyChangeKeyValue на все рутовые ключи реестра — HKEY_CLASSES_ROOT, HKEY_LOCAL_MACHINE etc.
Здравствуйте, Flamer, Вы писали:
F>А вы внимательно читали документацию по RegNotifyChangeKeyValue? Придет вам "само событие изменения в реестре чего либо", придет. Достаточно только поставить RegNotifyChangeKeyValue на все рутовые ключи реестра — HKEY_CLASSES_ROOT, HKEY_LOCAL_MACHINE etc.
поставил RegNotifyChangeKeyValue на все ключи. запихнул в отдельный поток.
но в этом случае программа узнает только об единичной попытке изменения реестра. приходится перезапускать поток.
З.Ы: можно как-то реализовать всё это через глобальный хук. но как?
на форуме эта тема поднималась не один раз, но ничего путнего так и не писалось. неужели никто не знает как это делается?
C>поставил RegNotifyChangeKeyValue на все ключи. запихнул в отдельный поток. C>но в этом случае программа узнает только об единичной попытке изменения реестра. приходится перезапускать поток.
А внимательней перечитать документацию по RegNotifyChangeKeyValue? Там сказано — вызовите RegNotifyChangeKeyValue еще раз. В общем случае псевдокод потоковой функции будет выглядеть так: