Как отследить запись в реестр Windows?????

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Memfivosfey
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 212
Зарегистрирован: 17.02.2005 (Чт) 14:55

Как отследить запись в реестр Windows?????

Сообщение Memfivosfey » 10.03.2005 (Чт) 14:28

Как отследить запись в реестр Windows производимую любой программой и в обязательном порядке её блокировать!!!! Помогите это очень нужно!!!! Буду сверх признателен!!
В программировании нет не решаемых проблемм, есть проблеммы на которые
мы не можем найти решение...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 10.03.2005 (Чт) 14:30

А поискать? Для кого GSerg старался?
Lasciate ogni speranza, voi ch'entrate.

Memfivosfey
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 212
Зарегистрирован: 17.02.2005 (Чт) 14:55

Сообщение Memfivosfey » 10.03.2005 (Чт) 15:11

Нашёл, но там только изменения раздела отслеживаються, а мне необходимо и ключей и разделов, с блокировкой онных.... Тобишь если реально, остановить на входе, ещё только при обращении....
В программировании нет не решаемых проблемм, есть проблеммы на которые
мы не можем найти решение...

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 10.03.2005 (Чт) 15:48

Грубо говоря, нереально :)
Только развесив разрешения доступа средставми винды.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Memfivosfey
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 212
Зарегистрирован: 17.02.2005 (Чт) 14:55

Сообщение Memfivosfey » 10.03.2005 (Чт) 15:54

А какже тогда работают программы типа АнтиСпай...., Реал тайм регистри мониторинг????

Хорошо, а если после записи в реестр, удалять ключ, это мне необходимо отсканить всё дерево ключей, сохранить, а потом при изменении сканить снова?

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

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 10.03.2005 (Чт) 16:03

Ну дык есть же параметр Key, и есть параметр SubTree.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

_Мика_
Гуру
Гуру
 
Сообщения: 1459
Зарегистрирован: 24.10.2003 (Пт) 15:05
Откуда: г. Москва, м.Речной вокзал

Сообщение _Мика_ » 11.03.2005 (Пт) 0:36

Ну не каждую же секунду сканировать весь реестр и искать различия 8) Кстати мне тоже этот вопрос интересен :D
-Папа, а правда, что форумы делают людей дибилами?
-гы гы гы, сынок, лол!

GM
programador
programador
 
Сообщения: 1427
Зарегистрирован: 24.06.2003 (Вт) 15:56
Откуда: 194.67.52.100

Сообщение GM » 11.03.2005 (Пт) 8:44

RegMon, к примеру юзает драйвер, для мониторинга. А так я делал с помощью RegNotifyChangeKeyValue.
الفيجوال بيسك الرابح

Memfivosfey
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 212
Зарегистрирован: 17.02.2005 (Чт) 14:55

Сообщение Memfivosfey » 11.03.2005 (Пт) 11:34

GM По медленее пож., я записываю....
В программировании нет не решаемых проблемм, есть проблеммы на которые
мы не можем найти решение...

Memfivosfey
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 212
Зарегистрирован: 17.02.2005 (Чт) 14:55

Сообщение Memfivosfey » 11.03.2005 (Пт) 12:18

Помогите разобраться, вот выдрал код на сайте... чиво делаю не так не пойму, выдаёт ошибку: Expected Sub, Function or Property.

Не могу понять что за значение должно быть в RegProc

Код: Выделить всё
'Для тестирования примера необходимо:
'1. Запустить пример (F5)
'2. Запустить Regedit.exe (C:\Windows\Regedit.exe)
'3. Перейти в раздел реестра HKEY_CURRENT_USER\Software\
         VB and VBA Program Settings\
         Registry Notification
'4. Измените одно из значений или удалите этот раздел
'5. Вернитесь к примеру

Const HKEY_CLASSES_ROOT = &H80000000
Const HKEY_CURRENT_USER = &H80000001
Const HKEY_LOCAL_MACHINE = &H80000002
Const REG_NOTIFY_CHANGE_NAME = &H1
Const REG_NOTIFY_CHANGE_ATTRIBUTES = &H2
Const REG_NOTIFY_CHANGE_LAST_SET = &H4
Const REG_NOTIFY_CHANGE_SECURITY = &H8
Const REG_LEGAL_CHANGE_FILTER = (REG_NOTIFY_CHANGE_NAME Or _
         REG_NOTIFY_CHANGE_ATTRIBUTES Or _
         REG_NOTIFY_CHANGE_LAST_SET Or _
         REG_NOTIFY_CHANGE_SECURITY)
         
Private Declare Function RegNotifyChangeKeyValue Lib "advapi32" _
         (ByVal hKey As Long, _
         ByVal bWatchSubtree As Boolean, _
         ByVal dwNotifyFilter As Long, _
         ByVal hEvent As Long, _
         ByVal fAsynchronous As Boolean) As Long
         
Private Sub Form_Load()
    SaveSetting "Registry Notification", _
         "Hello", _
         "Testing", _
         "123"
    RegNotifyChangeKeyValue HKEY_CURRENT_USER, _
         True, _
         REG_LEGAL_CHANGE_FILTER, _
' В следующей строке, происходит ошибка
         AddressOf RegProc, _
         False
    MsgBox "Registry changed"
    Unload Me
End Sub
В программировании нет не решаемых проблемм, есть проблеммы на которые
мы не можем найти решение...

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 11.03.2005 (Пт) 12:31

Странный код.
Вообще-то, предпоследний параметр у этой функции принимает event HANDLE, а не указатель на callback.

Что-то не то ты нашёл :)
http://bbs.vbstreets.ru/viewtopic.php?p=54861#54861
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 11.03.2005 (Пт) 12:35

RegProc - это твоя процедура, которая будет обрабатывать полученные данные. А AdressOf - адрес этой процедуры в памяти по которому будет совершён переход в случае срабатывания.
Т.е. в hEvent As Long должен стоять адрес твоей процедуры, которая обработает событие изменения значения в реестре.
Коряво конечно, но думаю я правильно понял код.
:oops:
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 11.03.2005 (Пт) 12:40

Нет. Хотя код и пытается передать туда некий адрес, быть его там не может. Только HANDLE, и только от event'а.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 11.03.2005 (Пт) 13:37

Кусок кода вырезан, нету функции ожидания после создания объекта оповещения...
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 11.03.2005 (Пт) 16:17

Почему?
RegNotifyChangeKeyValue и есть функция ожидания.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Memfivosfey
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 212
Зарегистрирован: 17.02.2005 (Чт) 14:55

Сообщение Memfivosfey » 11.03.2005 (Пт) 16:42

GSerg

А почему когда она выполняеться, весь проект в полном висяке?
В программировании нет не решаемых проблемм, есть проблеммы на которые
мы не можем найти решение...

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 11.03.2005 (Пт) 17:00

Потому что так и должно быть.

Ты что, так и не посмотрел тот линк, который я дал?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Memfivosfey
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 212
Зарегистрирован: 17.02.2005 (Чт) 14:55

Сообщение Memfivosfey » 11.03.2005 (Пт) 17:43

GSerg Дружище, я посмотрел твой линк и закачал :D , но дело в том, что я сейчас на работе.... Поэтому приходиться делать хитро, я весь день собираю инфу, а после дома, разгребаюсь и разбираюсь... Я уже распечатал около 10 страниц....

У меня задача, если реально, отследить любые, даже самые малые изменения по всему реестру. И если не предотвратить изменения, то хотя бы сразу убить!

Мне приходит сейчас в голову только рекурсия...... Хотя я совершенно не представляю, какой будет скорость?

Поэтому если есть идеи, как я могу в дальнейшем, как можно качественнее использовать твой контрол, что задействовать и т.п. пиши.... у меня в переди выходные.....
В программировании нет не решаемых проблемм, есть проблеммы на которые
мы не можем найти решение...


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 70

    TopList