ReadDirectoryChangesW pensa atalho está sendo excluído logo após a criação
-
16-09-2019 - |
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
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?