Продвинутый реестр

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Продвинутый реестр

Сообщение GSerg » 09.06.2003 (Пн) 16:32

Почти написал нехилую классяру для работы с реестром, а то имеющиеся что-то вяловаты :wink: :twisted: Только две проблемы осталось:
  1. Не работает функция RegRestoreKey. Сохранение-то работает, а вот эта бяка говорит, что будет работать только под Win32. А у меня, спрашивается, что?
  2. Есть замечательная функция RegNotifyChangeKeyValue. У неё параметр есть, определяющий хэндл события, которое должно вызываться в асинхронном режиме при изменении реестра. Очень мне интересно в своём классе завести Event на изменение реестра, но как понять фразу valid event handle, и как это заюзать?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Cyrax
Cyberninja
Cyberninja
Аватара пользователя
 
Сообщения: 891
Зарегистрирован: 25.04.2002 (Чт) 21:20
Откуда: Magnitogorsk, Russia

Сообщение Cyrax » 09.06.2003 (Пн) 16:44

valid event handle
переводится эта хрень примерно так - неутративший силу заголовок события
скорее всего, самое свежее изменение в реестре
а вот как юзать...?
Ты это ему расскажи. Я уже пять болтов отвинтил, и конца не видно... (озадаченно) А это в какую сторону тянуть? Ну-ка... Ага, этот был лишний, этот вообще не отсюда, и этот... Точно, два болта.

Welcome to IRC

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

Сообщение GSerg » 09.06.2003 (Пн) 16:49

Нееее, так дело не пойдёт :wink:
Как перевести с инглиша-то я знаю. Этот параметр функции определяет [неизвестно что] события, которое должно генериться при изменении реестра, если функция RegNotifyChangeKeyValue была вызвана в асинхронном режиме. Синхронный режим меня не интересует совершенно.
Так вот чего это? Может, AddressOf процедуры? Или глобальный хэндл на неизвестно что?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Cyrax
Cyberninja
Cyberninja
Аватара пользователя
 
Сообщения: 891
Зарегистрирован: 25.04.2002 (Чт) 21:20
Откуда: Magnitogorsk, Russia

Сообщение Cyrax » 09.06.2003 (Пн) 16:54

может ссылка на ключ реестра...
или на строчку в каком-то логе...

ткни меня носом, где это "valid event handle"прочитать мона
Ты это ему расскажи. Я уже пять болтов отвинтил, и конца не видно... (озадаченно) А это в какую сторону тянуть? Ну-ка... Ага, этот был лишний, этот вообще не отсюда, и этот... Точно, два болта.

Welcome to IRC

ShadowCaster
Бывалый
Бывалый
 
Сообщения: 254
Зарегистрирован: 24.05.2002 (Пт) 10:52

Сообщение ShadowCaster » 09.06.2003 (Пн) 21:42

Ждите кода. :lol:

ShadowCaster
Бывалый
Бывалый
 
Сообщения: 254
Зарегистрирован: 24.05.2002 (Пт) 10:52

Сообщение ShadowCaster » 09.06.2003 (Пн) 22:17

Держите. Думаю, сами разберётесь во всём.

P.S. Надо бы уже знать, что такое Event Object ! :?
Вложения
regv.zip
Проект для слежки за изменениями в реестре (Win9x/2k, XP?Me)
(1.61 Кб) Скачиваний: 70

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

Сообщение GSerg » 10.06.2003 (Вт) 9:44

Во как, значит, да? :wink:
А вот фигушки, не работает оно. При клике по кнопке всегда пишет "В реестре что-то изменилось", хотя явно не менялось ничего.
Кроме того, эта бяка синхронная, что большой негуд. Неужели никак нельзя нормальный асинхронный хук создать? Чтобы он мессагу слал потом, или ещё как.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

areh
Постоялец
Постоялец
 
Сообщения: 530
Зарегистрирован: 02.12.2002 (Пн) 12:28
Откуда: РОССИЯ, Салехард

Сообщение areh » 10.06.2003 (Вт) 9:46

Ты попробуй туда передать AddressOf процедуры (или функции) объявленной в модуле. Вроде должно получиться...

Удачи

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

Сообщение GSerg » 10.06.2003 (Вт) 9:56

Разумеется, это было первое, что я попробовал, потому и запостил вопрос, обломившись. "Неправильный хэндл события", видите ли. :(
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

ShadowCaster
Бывалый
Бывалый
 
Сообщения: 254
Зарегистрирован: 24.05.2002 (Пт) 10:52

Сообщение ShadowCaster » 10.06.2003 (Вт) 15:50

Грррр.... :x Запусти RegMon и посмотри - винда постоянно что-то в реестр пишет/читает...

P.S. Всё работает! :evil:

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

Сообщение GSerg » 11.06.2003 (Ср) 14:44

Ну ладно, ладно, пусть работает, всё замечательно и т.д. Но синхронная она, синхронная! И вообще, всё, что через Waitforsingleobject, всё синхронное. Это мне значит трэд создавать со всеми вытекающими плюшками?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

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

Сообщение Sebas » 11.06.2003 (Ср) 15:39

Ты ж компонент делаешь а не ехе!

Метод, который устанвливает Noticfication должен включать таймер с минимальным интервалом и в таймере вырубай сам таймер и лови реестр, только не с нулём в ожидании, а поставь таймаут 5-10сек и отлавливай внешнии вызовы методов и всё!

Я таким же методом останавливаю все задания на 6 принтерах))) (не спрашивай зачем)
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

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

Сообщение GSerg » 11.06.2003 (Ср) 16:07

Как-то всё-таки кривовато :(
Но спасибо всё равно :)

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

TifsSoft
Бывалый
Бывалый
 
Сообщения: 264
Зарегистрирован: 27.08.2002 (Вт) 2:34
Откуда: Ukraine

Сообщение TifsSoft » 12.06.2003 (Чт) 1:09

На сколько я знаю, RegMon opensource, так что может есть смысл посмотреть его исходники на www.sysinternals.com ..? Пусть он написан не на VB но нужное можно найти.

P.S. А я недавно сделал FTP сервер с виртуальной FS - реестром %) Такая вот своеобразная курсовая работа (хотя делал я его для своих целей)
-TifsSoft-


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

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

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

    TopList  
cron