Pergunta

Eu estou usando esta implementação de ReadDirectoryChangesW para monitorar alterações no ambiente de trabalho . Meu programa planeja para executar um pequeno programa quando um arquivo é criado no desktop.

Agora, o problema que eu estou correndo em é quando eu criar um novo atalho através do menu do botão direito contexto ReadDirectoryChangesW recebe uma notificação dizendo que o arquivo foi criado, mas logo depois ele fica foi excluído outra notificação dizendo que o arquivo. Fui correndo para esse problema desde o Windows Vista.

Alguém tem alguma idéia do que pode estar errado? Existe outra função eu deveria estar usando para o diretório monitor muda específico para o Vista e 7?

Obrigado, Krishna

Foi útil?

Solução 3

Eu consegui resolver esse problema. Eu ainda não sei por que estou recebendo todos os eventos ReadDirectyChangesW estranhos, mas eu tenho o meu resultado final, por isso estou deixando esta questão ser.

Obrigado por toda a ajuda.

Outras dicas

Windows faz algumas coisas engraçadas com arquivos .lnk para que você não pode ver a extensão .lnk. Talvez por isso a notificação eliminado é enviado, porque o próprio Windows não pode ver o arquivo "New shortcut.lnk", apenas o "Novo Atalho". Mas esta é apenas uma teoria.

Então, o que eu faria é tentar trabalhar em torno dele, e ignorar a notificação excluídos arquivo se o arquivo ainda existe. Assumindo que você pode descobrir que o arquivo .lnk ainda existe, é claro:)

Você definiu quaisquer filtros:. Você pode estar vendo o atalho que está sendo recriada (e que não corresponde à do filtro)

Explorador tende a criar coisas com um nome fixo e, em seguida, renomeá-los. Então ReadDirectoryChangesW verá várias alterações.

pensamentos adicionais:

Note, o buffer com a notificação de alteração pode conter várias notificações, estão todos sendo lido.

O que processo de monitor show no mesmo tempo?

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