Pergunta

Eu tenho usado ReadDirectoryChangesW para monitorar uma parte específica do sistema de arquivos. Ele fornece um bom nome de caminho parcial para o arquivo ou diretório que mudou junto com uma pista sobre a natureza da mudança. Isso pode ter me estragado.

Eu também preciso monitorar uma parte específica do registro, mas parece que RegNotifyChangeKeyValue é muito grosso. Vai me dizer isso algo Sob a chave dada mudou, mas não parece querer me dizer o que poderia ter sido. Desapontamento!

A parte do registro em questão é arbitrariamente profunda, então enumerando todas as sub-teclas e chamando RegNotifyChangeKeyValue para cada um provavelmente não é uma ideia quente, porque acabarei tendo que superar MAXIMUM_WAIT_OBJECTS. Além disso, eu teria que ajustar o conjunto de chaves que eu passei RegNotifyChangeKeyValue, o que seria uma quantidade razoável de esforço para fazer sem enumerar as sub-teclas todas as vezes, o que derrotaria uma quantidade razoável do objetivo.

Alguma ideia?

Foi útil?

Solução

Infelizmente sim. Você provavelmente precisa armazenar em cache todos os valores de interesse do seu código e atualizar esse cache sempre que obtiver um gatilho de alteração, ou então configure vários observadores, um em cada um dos itens de interesse individuais de dados. Como você observou, a segunda solução fica pesada muito rapidamente.

Se você pode implementar o código necessário no .net, poderá obter o mesmo efeito com mais elegância via RegistryEvent e suas subclasses.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top