ReadDirectoryChangesW denkt Verknüpfung gelöscht wird direkt nach der Erstellung
-
16-09-2019 - |
Frage
Ich bin mit dieser Implementierung von ReadDirectoryChangesW Änderungen am Desktop zu überwachen . Mein Programm plant, einiges kleines Programm auszuführen, wenn eine Datei auf dem Desktop erstellt wird.
Jetzt das Problem, das ich in laufen lasse, wenn ich eine neue Verknüpfung über die rechte Maustaste im Kontextmenü erstellen bekommt ReadDirectoryChangesW eine Benachrichtigung, dass die Datei erstellt wurde, sondern direkt nach dem es eine weitere Meldung, dass die Datei wird gelöscht wurde. Ich habe seit Windows Vista in dieses Problem ausgeführt wird.
Wer noch keine Ahnung hat, was falsch sein könnte? Gibt es eine andere Funktion, die ich verwenden soll Verzeichnisänderungen spezifisch für Vista und 7?
zu überwachenDanke, Krishna
Lösung 3
ich es geschafft, dieses Problem zu lösen. Ich weiß immer noch nicht, warum ich all diese seltsamen ReadDirectyChangesW Ereignisse bin immer, aber ich habe mein Endergebnis so dass ich diese Frage verlasse.
Vielen Dank für die Hilfe.
Andere Tipps
Fenster hat einige lustige Sachen mit LNK-Dateien, so dass Sie nicht die LNK-Erweiterung sehen. Vielleicht ist das, warum wird die gelöschte Benachrichtigung gesendet, da Windows selbst nicht die „New Verknüpfung.lnk“ Datei sehen kann, nur das „New Shortcut“. Aber das ist nur eine Theorie.
Also, was ich tun würde, ist versuchen, um ihn zu arbeiten, und ignorieren Sie die Datei-Benachrichtigung gelöscht, wenn die Datei noch existiert. Angenommen, Sie können herausfinden, dass die LNK-Datei natürlich noch nicht existiert:)
Haben Sie definiert Filter. Sie können die Verknüpfung wird neu erstellt werden sehen (und Ihr Filter nicht passend)
Explorer neigt die Dinge mit einem festen Namen zu erstellen, und benennen Sie sie dann. So wird ReadDirectoryChangesW
mehrere Änderungen sehen.
Weitere Gedanken:
Hinweis, der Puffer mit der Änderungsbenachrichtigung mehr Benachrichtigungen enthalten kann, werden alle gelesen werden.
Was bedeutet Process Monitor zugleich zeigen?