Вверх ↑
Этот топик читают: Гость
Ответов: 4630
Рейтинг: 749
#1: 2014-07-03 12:25:26 ЛС | профиль | цитата
RegistryMonitor v1.0

Компонент для оповещения об изменениях в заданном ключе реестра (опционально - во всех подключах).
Работает по принципу IC в схеме от Ivann: оповещает только о факте изменения, но не показывает, какой именно подключ/значение изменилось.

RegistryMonitor v1.0.zip

Редактировалось 1 раз(а), последний 2016-11-17 18:40:40
карма: 26

0
Разработчик
Ответов: 26156
Рейтинг: 2127
#2: 2014-07-03 12:57:17 ЛС | профиль | цитата
Netspirit писал(а):
но не показывает, какой именно подключ/значение изенилось

А вот если бы это реализовать, то было бы очень, кстати, отлично.
карма: 22

0
Ответов: 4630
Рейтинг: 749
#3: 2014-07-03 13:09:48 ЛС | профиль | цитата
То-есть, по принципу Registry Monitor от Русиновича. Вероятно, он таки использует какой-то драйвер, позволяющий ему мониторить вообще любой доступ к реестру (проверить можно, включив отображение скрытых устройств в "Диспетчере устройств" после запуска Registry Monitor - там будет светится устройство REGMONxxx)

Есть ещё такая штука как Event Tracing (http://msdn.microsoft.com/en-us/library/windows/desktop/bb968803(v=vs.85).aspx). Надо посмотреть.
карма: 26

0
Гость
Ответов: 17029
Рейтинг: 0
#4: 2016-05-23 20:10:37 правка | ЛС | профиль | цитата


Редактировалось 6 раз(а), последний 2022-09-20 00:20:36
карма: 0

0
Ответов: 4630
Рейтинг: 749
#5: 2016-05-24 10:21:34 ЛС | профиль | цитата
А AsyncEvents=True?
карма: 26

0
Гость
Ответов: 17029
Рейтинг: 0
#6: 2016-05-26 19:17:19 правка | ЛС | профиль | цитата


Редактировалось 6 раз(а), последний 2022-09-20 00:20:36
карма: 0

0
Гость
Ответов: 17029
Рейтинг: 0
#7: 2016-05-27 12:34:04 правка | ЛС | профиль | цитата


Редактировалось 6 раз(а), последний 2022-09-20 00:20:35
карма: 0

0
Ответов: 4630
Рейтинг: 749
#8: 2016-05-27 12:44:49 ЛС | профиль | цитата
Как-то непонятно ты сформулировал.
"у меня есть сомнение что при остановке сервиса потоки и дальше работают"
Может все-таки "подозрение, что при остановке сервиса потоки и дальше работают"? Они и не должны сами останавливаться - пробуй останавливать потоки по onStop. И о каких потоках идёт речь - о потоке в данном компоненте или компоненте Thread?
карма: 26

0
Ответов: 632
Рейтинг: 4
#9: 2017-12-16 23:38:34 ЛС | профиль | цитата
RegistryMonitor v1.0
Насколько возможно добавить оповещение о изменений, что бы в потоке было указано какой ключ изменился.
но не показывает, какой именно подключ/значение изменилось.

карма: 0

0
Ответов: 4630
Рейтинг: 749
#10: 2017-12-17 13:27:19 ЛС | профиль | цитата
В текущей реализации - невозможно. Можно пробовать делать снапшоты дерева ключа при каждом изменении и сравнивать.
карма: 26

0
Ответов: 632
Рейтинг: 4
#11: 2017-12-17 13:57:16 ЛС | профиль | цитата
Netspirit писал(а):
В текущей реализации - невозможно. Можно пробовать делать снапшоты дерева ключа при каждом изменении и сравнивать.

Как сделать снапшот?
карма: 0

0
Ответов: 4630
Рейтинг: 749
#12: 2017-12-17 14:16:12 ЛС | профиль | цитата
Вероятно, компонентом Registry.
карма: 26

0
Ответов: 632
Рейтинг: 4
#13: 2017-12-17 21:47:11 ЛС | профиль | цитата
Netspirit писал(а):
Вероятно, компонентом Registry.

Это понятно, что с помощью Registry, но не понятно как это сделать.
Даже если это занимает много время, не понятно как сделать дерево, потому что после перебора нет события конца.

Add(MainForm,2953706,21,105)
{
Width=518
Height=398
link(onCreate,5893694:doEnumKeys,[])
}
Add(Registry,5893694,111,105)
{
HKey=1
NotEmpty=1
Point(doEnumKeys)
Point(onEnumKey)
link(onEnumKey,5752367:doEvent1,[(166,118)(166,41)])
}
Add(TreeView,147236,546,112)
{
Width=502
Height=360
Align=5
Icons=[]
}
Add(Hub,16532063,490,112)
{
InCount=4
OutCount=1
link(onEvent1,147236:doAdd,[])
}
Add(Registry,11205924,307,231)
{
HKey=1
NotEmpty=1
Point(doEnumKeys)
Point(onEnumKey)
link(onEnumKey,14621671:doEvent1,[(351,244)])
}
Add(Hub,5752367,175,35)
{
OutCount=3
link(onEvent1,16532063:doEvent1,[(298,41)(298,118)])
link(onEvent2,8459198:doData,[(214,48)(214,139)])
link(onEvent3,11205924:doEnumKeys,[(205,55)(205,251)])
}
Add(DoData,8459198,259,133)
{
Data=String(()
link(onEventData,16532063:doEvent2,[(391,139)(391,125)])
}
Add(DoData,4965196,392,294)
{
Data=String())
link(onEventData,16532063:doEvent4,[(457,300)(457,139)])
}
Add(Hub,14621671,343,224)
{
link(onEvent1,16532063:doEvent3,[(423,230)(423,132)])
link(onEvent2,4965196:doData,[(375,237)(375,300)])
}

карма: 0

0
Ответов: 9906
Рейтинг: 351
#14: 2017-12-18 10:06:13 ЛС | профиль | цитата
Vadimluk1 писал(а):
потому что после перебора нет события конца.

После чего угодно есть конец.

Начните с базы... Перечитайте хотя бы "модель паровозиков".
А уже потом - мониторингом изменений в ключе реестра
Так логичней... И безопасней.
карма: 9

0
Ответов: 632
Рейтинг: 4
#15: 2017-12-18 19:34:39 ЛС | профиль | цитата
Galkov писал(а):
Vadimluk1 писал(а):
потому что после перебора нет события конца.

После чего угодно есть конец.

Начните с базы... Перечитайте хотя бы "модель паровозиков".
А уже потом - мониторингом изменений в ключе реестра
Так логичней... И безопасней.

Базы чего?
карма: 0

0
15
Сообщение
...
Прикрепленные файлы
(файлы не залиты)